2015-08-14 7 views
5

Mam poniższy kod.Odbicie PCL uzyskać właściwości z 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; 
    } 

Próbuję przekonwertować to do biblioteki PCL, ale nie mogę tego rozgryźć. Próbowałem już teraz:

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

Ale BindingFlags nie istnieje.

Czego mi brakuje?

+0

Czy to nie działa 'type.GetType() GetProperties (BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly). .ToList()' – Sandesh

+2

nr GetProperties robi istnieją w PCL –

+0

Wszelkie postępy od tego czasu? –

Odpowiedz

1

Według MSDN, GetProperties sposób rozwiązywane są:

Obsługiwane w: Portable Class Library

Upewnij się, że włączone System.Reflection nazw.

GetProperties() jest częścią klasy System.Reflection.TypeExtensions (kilka metod rozszerzenia refleksji), więc należy uwzględnić przestrzeń nazw i powinieneś mieć dostępne te i podobne rozszerzenia.

Jeśli nadal nie jest dostępny, spróbuj dołączyć do zestawu System.Reflection.TypeExtensions przez NuGet.

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

* BindingFlags * nie istnieje. System.Reflection.TypeExtensions nie jest zgodny z PCL. To nie jest poprawna odpowiedź. – Darren

Powiązane problemy