c# – 在.NET 4.5 TypeInfo.DeclaredMembers上过滤掉私有成员
发布时间:2020-12-15 22:00:28 所属栏目:百科 来源:网络整理
导读:我在PCL项目中使用反射(4.5,配置文件78).反射api在4.5中已经发生了变化(见 Evolving the reflection API),虽然在经典框架(TypeInfo继承自Type)中几乎没有发现这种变化,但对于包括PCL在内的其他配置文件来说,这是另一回事. 在.NET 4中,这将检索所有公共成员:
我在PCL项目中使用反射(4.5,配置文件78).反射api在4.5中已经发生了变化(见
Evolving the reflection API),虽然在经典框架(TypeInfo继承自Type)中几乎没有发现这种变化,但对于包括PCL在内的其他配置文件来说,这是另一回事.
在.NET 4中,这将检索所有公共成员: typeof(MyType).GetMembers (); .NET 4.5中的粗略等价物是 typeof (MyType).GetTypeInfo ().DeclaredMembers; 除了它返回所有成员. doc说
好.我想,但是MemberInfo不提供IsStatic,IsPrivate,…属性.看起来这些属性仅在ConstructorInfo,FieldInfo,MethodInfo中定义,但在(基本)MemberInfo,PropertyInfo和EventInfo中缺失. 有什么我想念的吗?如何过滤MemberInfo和PropertyInfo 解决方法
检索PropertyInfo上的可访问性访问器的一种方法是
bool HasPublicGetter (PropertyInfo pi) { if (!pi.CanRead) return false; MethodInfo getter = pi.GetMethod; return getter.IsPublic; } 同样适用于AddMethod的EventInfo. 这一切都是有道理的,因为房产本身不是公共的或私人的,但有公共或私人的吸气剂和制定者. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |