如何确定MemberInfo实例的可访问性?

obi*_*obi 9 .net reflection

我知道BindingFlags用于从Type中获取公共成员和非公共成员.

但有没有办法确定MemberInfo实例(或类似PropertyInfo,MethodInfo派生)是否公开(在从Type上的某个方法返回之后)?

Thanx,Marc

Jon*_*eet 7

PropertyInfo,MethodBase等各有一个Attributes具有此信息属性-但有没有什么的MemberInfo,因为每个类的成员都有自己的那种属性枚举.虽然它是隐藏的,但我认为你可能需要分别处理每个子类MemberInfo:(你可以打开MemberInfo.MemberType然后再投射,这将比许多/ test-for-null分支稍微好一点as,但它仍然不理想:(

if (member.MemberType == MemberTypes.Property)
{
    var property = (PropertyInfo) member;
    ...
}
Run Code Online (Sandbox Code Playgroud)