我正在使用IMetaDataImport
API,我需要确定程序集中的类型定义是值还是引用类型。我没有在API中找到明确提供此信息的任何方法。但是,我可以轻松地获取基本类型并检查它是否为System.ValueType
。
我的问题是:基类是CLI元数据编码事件的唯一方法,即类型是值类型还是在某处有某些标志?
答案 0 :(得分:1)
没有标志可以直接识别值类型。看起来像检查基类型以及其他一些东西是规范的方法。
ECMA CLI spec的第II.10.1.3节描述了这样的类型定义:
类型语义属性指定接口,类还是 值类型应定义。 接口属性指定了一个 接口。如果此属性不存在且定义扩展 (直接或间接)
System.ValueType
,而定义则不是 对于System.Enum
,应定义值类型。否则,一堂课 应该被定义。
答案 1 :(得分:0)
Type.IsValueType
property您要找的是什么?