【问题标题】:How to tell if MemberInfo is internal如何判断 MemberInfo 是否是内部的
【发布时间】:2011-08-17 21:16:18
【问题描述】:

确定MemberInfo 的实例是否为内部实例的快速测试是什么?

【问题讨论】:

    标签: c# .net reflection internal


    【解决方案1】:

    如何判断 MemberInfo 是否是内部的?

    你不能,因为这个问题实际上没有意义。

    成员信息可能代表一个属性,而属性没有可访问性。 (getter 和 setter 具有可访问性,但由于它们可以不同,因此属性不具有可访问性。)

    由于有些成员没有可访问性,因此无法仅从 MemberInfo 确定成员的可访问性。您需要将其转换为 FieldInfo 或 TypeInfo 或实际上是什么,然后询问该对象的可访问性是什么。 (当然,如果它是 PropertyInfo,那么您必须弄清楚您是对 getter 还是 setter 感兴趣,并获取与之关联的方法信息。)

    【讨论】:

    • 非常有帮助,谢谢。 IsAssembly 是正确的属性吗?
    • @smartcaveman:是的,“程序集”是反射如何指代 C# 称为“内部”而 VB 称为“朋友”的可访问性。请注意,对于 IsAssembly,“受保护的内部”/“受保护的朋友”字段不会返回 true。有关详细信息,请阅读 MSDN 文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2021-01-11
    • 1970-01-01
    相关资源
    最近更新 更多