更新:2007 年 11 月
将指定的选项设置为当前元数据范围的给定值。该选项控制如何处理对当前元数据范围的调用。
HRESULT SetOption (
[in] REFGUID optionId,
[in] const VARIANT *pValue
);
参数
optionId
[in] 一个指针,它指向指定要设置的选项的 GUID。pValue
[in] 要用于设置选项的值。此值的类型必须是指定选项类型的变量。
备注
下表列出了 optionId 参数可以指向的可用 GUID 以及 pValue 参数的相应有效值。
GUID |
选项 |
pValue 参数 |
---|---|---|
MetaDataCheckDuplicatesFor |
重复检查。它控制要对哪些项执行重复项检查以及对哪些项不进行此项检查。也就是说,当每次调用 IMetaDataEmit 方法来创建新项时,可以请求该方法检查当前范围内是否已存在该项。例如,可以请求检查 mdMethodDef 项;在此情况下,当调用 IMetaDataEmit::DefineMethod 时,它将检查当前范围内是否已存在该方法。此检查使用唯一标识给定方法的键:父类型、名称和签名。 |
必须是 UI4 类型的变量,并包含 CorCheckDuplicatesFor 枚举值的组合。 |
MetaDataRefToDefCheck |
“引用至定义”优化。它控制要将引用的哪些项转换为定义。默认情况下,如果引用的项实际是在当前范围内定义的,则元数据引擎便可以将该引用的项转换为它的定义,以此来优化代码。 |
必须是 UI4 类型的变量,并包含 CorRefToDefCheck 枚举值的组合。 |
MetaDataNotificationForTokenMovement |
有关标记移动的通知。它控制在元数据合并期间发生的哪些标记重新映射会生成回调。使用 IMetaDataEmit::SetHandler 方法可建立自己的 IMapToken 接口。 |
必须是 UI4 类型的变量,并包含 CorNotificationForTokenMovement 枚举值的组合。 |
MetaDataSetENC |
ENC 模式。它控制“编辑并继续”(ENC) 行为。一次只能设置一种行为模式。 |
必须是 UI4 类型的变量,并包含一个 CorSetENC 枚举值。该值不是位屏蔽。 |
MetaDataErrorIfEmitOutOfOrder |
发出顺序紊乱。它控制哪些“发出顺序紊乱”错误会生成回调。发出顺序紊乱的元数据并不是致命的;但是,如果以元数据引擎支持的顺序发出元数据,则该元数据将更加紧凑,从而可以使搜索更有效率。使用 IMetaDataEmit::SetHandler 方法可建立自己的 IMetaDataError 接口。 |
必须是 UI4 类型的变量,并包含 CorErrorIfEmitOutOfOrder 枚举值的组合。 |
MetaDataImportOption |
导入选项。它控制在 ENC 期间删除的哪些类型的项可以由枚举数检索到。 |
必须是 UI4 类型的变量并包含 CorImportOptions枚举值的组合。 |
MetaDataThreadSafetyOptions |
线程安全的选项。它控制元数据引擎是否获取读取器/编写器锁,从而来确保线程安全。默认情况下,该引擎假定调用方的访问是通过单线程进行的,因此不会获取任何锁。当使用元数据 API 时,客户端将负责维护适当的线程同步。 |
必须是 UI4 类型的变量,并包含一个 CorThreadSafetyOptions 枚举值。该值不是位屏蔽。 |
MetaDataGenerateTCEAdapters。 |
生成 TCE 适配器。它控制类型库导入程序是否应为 COM 连接点容器生成紧耦合事件 (TCE)。 |
必须是 BOOL 类型的变量。如果将 pValue 设置为 true,则类型库导入程序将生成 TCE 适配器。 |
MetaDataTypeLibImportNamespace |
命名空间。它可为要导入的类型库指定非默认的命名空间。 |
必须是 Null 值或 BSTR 类型的变量。如果 pValue 为 Null 值,则当前命名空间将设置为 Null;否则,当前命名空间将设置为存储在该变量的 BSTR 类型中的字符串。 |
MetaDataLinkerOptions |
链接器选项。它控制链接器应生成程序集还是 .NET 模块文件。 |
必须是 UI4 类型的变量,并包含 CorLinkerOptions 枚举值的组合。 |
MetaDataRuntimeVersion |
运行库版本。它指定生成此映像时使用的公共语言运行库版本。该版本存储为一个字符串,例如“v1.0.3705”。 |
必须是 Null 值、VT_EMPTY 值或 BSTR 类型的变量。如果 pValue 为 Null,则运行库版本将设置为 Null;如果 pValue 为 VT_EMPTY,该版本将设置为默认值(此值将根据正在运行其元数据代码的 Mscorwks.dll 的版本得出);否则,运行库版本将设置为在变量的 BSTR 类型中存储的字符串。 |
要求
**平台:**请参见 .NET Framework 系统要求。
**头文件:**Cor.h
**库:**在 MsCorEE.dll 中用作资源
**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0