Visual Studio SDK获取类型修饰符信息-类型是抽象的还是内部的?

问题描述 投票:0回答:1

我使用IVsObjectList2.GetCategoryField2方法检索类型的不同信息。

[现在,我想知道如何检索C#特定信息,例如IVsObjectList2.GetCategoryField2abstract类型的修饰符?对象浏览器可以显示此信息。

internal

c# visual-studio-extensions vsix visual-studio-sdk objectbrowser
1个回答
0
投票

您可以使用enter image description here功能获取有关类型的信息。

要检查类型是否为抽象,可以执行以下操作:

GetType()

如果没有所需类型的变量,则可以执行以下操作:

var someString = "bla";
var isAbstract = someString.GetType().IsAbstract;

检查类型是否为内部有点。签出var isAbstract = (typeof(String)).IsAbstract; 答案:

这是一个经典问题。从MSDN:

C#关键字protected和internal在IL中没有意义,它们是在反射API中未使用。 IL中的相应术语是家庭与集会。要使用反射识别内部方法,使用IsAssembly属性。要确定受保护的内部方法,使用IsFamilyOrAssembly。

Reflection不会公开类型检查的内部方式,受保护的或受保护的内部。

© www.soinside.com 2019 - 2024. All rights reserved.