我使用IVsObjectList2.GetCategoryField2
方法检索类型的不同信息。
[现在,我想知道如何检索C#特定信息,例如IVsObjectList2.GetCategoryField2
或abstract
类型的修饰符?对象浏览器可以显示此信息。
internal
要检查类型是否为抽象,可以执行以下操作:
GetType()
如果没有所需类型的变量,则可以执行以下操作:
var someString = "bla";
var isAbstract = someString.GetType().IsAbstract;
检查类型是否为内部有点。签出var isAbstract = (typeof(String)).IsAbstract;
答案:
这是一个经典问题。从MSDN:
C#关键字protected和internal在IL中没有意义,它们是在反射API中未使用。 IL中的相应术语是家庭与集会。要使用反射识别内部方法,使用IsAssembly属性。要确定受保护的内部方法,使用IsFamilyOrAssembly。
Reflection不会公开类型检查的内部方式,受保护的或受保护的内部。