PCL Reflection使用BindingFlags获取属性

Chr*_*ken 6 .net c# 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;
    }
Run Code Online (Sandbox Code Playgroud)

我试图将其转换为PCL库,但我无法弄明白.我试过了

type.GetTypeInfo().DeclaredProperties.Where(x => x.BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
Run Code Online (Sandbox Code Playgroud)

但是BindingFlags不存在.

我错过了什么?

Nie*_*ter 2

根据MSDNGetProperties支持方法:

支持:可移植类库

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

GetProperties()是类的一部分System.Reflection.TypeExtensions(一堆反射扩展方法),因此包括命名空间,您应该可以使用此扩展和类似的扩展。

如果它仍然不可用,请尝试System.Reflection.TypeExtensions通过NuGet包含程序集。

PM> Install-Package System.Reflection.TypeExtensions
Run Code Online (Sandbox Code Playgroud)

  • *BindingFlags* 不存在。System.Reflection.TypeExtensions 与 PCL 不兼容。这不是一个有效的答案。 (4认同)