2015-08-14 2 views
5

У меня есть код ниже.PCL Reflection получить свойства с 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; 
    } 

Я пытаюсь преобразовать это в библиотеку PCL, но я не могу понять это. Я пробовал

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

Но BindingFlags не существует.

Что мне не хватает?

+0

это не работает 'Type.GetType() GetProperties (BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly). .ToList()' – Sandesh

+2

No. GetProperties оленья кожа существовать в PCL –

+0

Любой прогресс с тех пор? –

ответ

1

Согласно MSDN, GetProperties метод поддерживается:

Поддерживается в версиях: Портативный библиотеки классов

Убедитесь, что вы включили System.Reflection имен.

GetProperties() является частью класса System.Reflection.TypeExtensions (куча методов расширения отражения), поэтому включите пространство имен, и вы должны иметь это и подобные расширения.

Если он по-прежнему недоступен, попробуйте включить System.Reflection.TypeExtensions через NuGet.

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

* BindingFlags * не существует. System.Reflection.TypeExtensions не совместим с PCL. Это недействительный ответ. – Darren

Смежные вопросы