2015-08-14 11 views
5

Ho il codice qui sotto.PCL Reflection ottiene proprietà con BindingFlags

public static IEnumerable<PropertyInfo> GetAllPublicInstanceDeclaredOnlyProperties(this Type type) 
    { 
     var result = 
      from PropertyInfo pi in type.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) 
      select pi; 

     return result; 
    } 

Sto provando a convertirlo in una libreria PCL ma non riesco a capirlo. Ho provato

type.GetTypeInfo().DeclaredProperties.Where(x => x.BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly) 

Ma BindingFlags non esiste.

Cosa mi manca?

+0

Questo non funziona 'Type.GetType() GetProperties (BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly). .ToList()' – Sandesh

+2

No. GetProperties pretende molto esistono in PCL –

+0

Qualche progresso da allora? –

risposta

1

Secondo MSDN, GetProperties metodo è supportato:

Supportato in: Libreria di classi portatile

assicurati di aver incluso System.Reflection namespace.

GetProperties() fa parte della classe System.Reflection.TypeExtensions (un sacco di metodi di estensione di reflection) quindi includi lo spazio dei nomi e dovresti avere questa e le estensioni simili disponibili.

Se non è ancora disponibile, provare a includere l'assemblaggio System.Reflection.TypeExtensions tramite NuGet.

PM> Install-Package System.Reflection.TypeExtensions 
+2

* BindingFlags * non esiste. System.Reflection.TypeExtensions non è compatibile con PCL. Questa non è una risposta valida. – Darren

Problemi correlati