PCL Reflection使用BindingFlags获取属性

时间:2015-08-14 02:47:17

标签: c# .net reflection portable-class-library

我有以下代码。

    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并不存在。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

根据MSDN,支持GetProperties方法:

  

支持:可移植类库

确保您已包含System.Reflection命名空间。

GetProperties()System.Reflection.TypeExtensions类(一组反射扩展方法)的一部分,因此请包含命名空间,并且应该具有此类和类似的扩展。

如果它仍然不可用,请尝试通过NuGet加入System.Reflection.TypeExtensions汇编。

PM> Install-Package System.Reflection.TypeExtensions