如何根据CLI元数据确定类型是否为值类型?

时间:2012-06-30 23:14:29

标签: .net metadata value-type

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

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

2 个答案:

答案 0 :(得分:1)

没有标志可以直接识别值类型。看起来像检查基类型以及其他一些东西是规范的方法。

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

  

类型语义属性指定接口,类还是   值类型应定义。 接口属性指定了一个   接口。如果此属性不存在且定义扩展   (直接或间接)System.ValueType,而定义则不是   对于System.Enum,应定义值类型。否则,一堂课   应该被定义。

答案 1 :(得分:0)

Type.IsValueType property您要找的是什么?