1

我正在使用IMetaDataImportAPI,并且我需要确定我的程序集中的类型定义是值类型还是引用类型。我没有在 API 中找到任何明确提供此信息的方法。但是,我可以很容易地获得基本类型并检查它是否是System.ValueType.

我的问题是:基类是 CLI 元数据对类型是值类型这一事实进行编码的唯一方法,还是在某处有一些标志?

4

2 回答 2

1

没有直接标识值类型的标志。看起来检查基本类型以及其他一些事情是执行此操作的规范方法。

ECMA CLI 规范的第 II.10.1.3 节描述了这样的类型定义:

类型语义属性指定是否应定义接口、类或值类型。interface属性指定一个接口。如果此属性不存在并且定义扩展(直接或间接)System.ValueType,并且定义不是 for System.Enum,则应定义值类型。否则,应定义一个类。

于 2012-07-01T00:43:42.623 回答
0

Type.IsValueType房产是你要找的吗?

于 2012-07-01T00:45:57.320 回答