2016-08-08 58 views
0

Ich portiere eine Silverlight-Anwendung auf UWP. In meiner Silverlight-Anwendung, ich die öffentliche Instanz Eigenschaften erhalten:Reflection, um öffentliche Instanzeigenschaften in UWP zu erhalten

Type t; 
t.GetProperties(BindingFlags.Instance | BindingFlags.Public); 

In UWP es aussieht wie die GetProperties (BindingFlags.Instance | BindingFlags.Public) ist Methode nicht mehr verfügbar. Gibt es einen anderen Weg, dies in UWP zu erreichen?

danke.

Antwort

1

Von dieser MSDN Quelle können Sie folgendes tun:

var props = t.GetTypeInfo().DeclaredProperties 
          .Where(x => x.GetMethod.IsPublic); 
+0

danke user3185569. Wie bing flash angeben, um nicht-öffentliche oder nicht-statische Eigenschaften zu erhalten? foreach (PropertyInfo p in Requisiten) { if (p.GetType(). GetTypeInfo(). IsPublic || p.GetType(). GetTypeInfo(). IsNotPublic)) || p.GetType(). GetTypeInfo(). IsInstance) // ???? { // .... } } –

+0

@sarahberderian Haben Sie 'using System.Reflection;' hinzugefügt, weil ich 'GetProperties' mit Binding Flags in meinem UWP-Projekt verwenden kann. – user3185569

+0

@sarahberderian Überprüfen Sie jedoch die aktualisierte Antwort, wie Eigenschaften mit dem öffentlichen Getter abgerufen werden können. Wenn Sie nur solche mit öffentlichen Setter hinzufügen möchten, fügen Sie '|| hinzu x.SetMethod.IsPublic' – user3185569