IMetaDataDispenserEx::SetOption 方法 (rometadataapi.h)

将指定选项设置为当前元数据范围的给定值。 该选项控制如何处理对当前元数据范围的调用。

语法

HRESULT SetOption(
  [in] REFGUID       optionId,
  [in] const VARIANT *pValue
);

参数

[in] optionId

指向 GUID 的指针,该 GUID 指定要设置的选项。

[in] pValue

用于设置选项的值。 此值的类型必须是指定选项类型的变体。

返回值

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

下表列出了 optionId 参数可以指向的可用 GUID 以及 pValue 参数的相应有效值。

GUID 描述 pValue 参数
MetaDataCheckDuplicatesFor 控制检查哪些项是否有重复项。 必须是类型 UI4 的变量,并且必须包含 CorCheckDuplicatesFor 枚举的值的组合。
MetaDataRefToDefCheck 控制将哪些引用项转换为定义。 默认情况下,如果在当前范围内实际定义了引用项,则元数据引擎将通过将引用项转换为其定义来优化代码。 必须是类型 UI4 的变量,并且必须包含 CorRefToDefCheck 枚举的值的组合。
MetaDataNotificationForTokenMovement 控制在元数据合并期间发生的哪些令牌重映射会生成回调。 必须是类型 UI4 的变量,并且必须包含 CorNotificationForTokenMovement 枚举的值的组合。
MetaDataSetENC 控制“编辑并继续”(ENC) 行为。 一次只能设置一种行为模式。 必须是类型 UI4 的变体,并且必须包含 CorSetENC 枚举的值。 该值不是位掩码。
MetaDataErrorIfEmitOutOfOrder 控制哪些“乱序发送”错误生成回调。 不按顺序发出元数据不是灾难性的错误;但是,如果以元数据引擎所采用的顺序发出元数据,则元数据将更紧凑,因此搜索会更有效。 必须是类型 UI4 的变量,并且必须包含 CorErrorIfEmitOutOfOrder 枚举的值的组合。
MetaDataImportOption 控制在 ENC 中删除的哪些类型的项由枚举器检索。 必须是 UI4 类型的变体,并且必须包含 CorImportOptions 枚举的值的组合。
MetaDataThreadSafetyOptions 控制元数据引擎是否获取读取器/写入器锁,从而确保线程安全性。 默认情况下,引擎假定调用方对访问是单线程的,因此不会获取任何锁。 使用元数据 API 时,客户端负责维护适当的线程同步。 必须是类型 UI4 的变体,并且必须包含 CorThreadSafetyOptions 枚举的值。 该值不是位掩码。
MetaDataGenerateTCEAdapters 控制类型库导入程序是否应为 COM 连接点容器生成紧密耦合的事件 (TCE) 适配器。 必须是类型 BOOL 的变体。 如果 pValue 设置为 true,则类型库导入程序将生成 TCE 适配器。
MetaDataTypeLibImportNamespace 指定要导入的类型库的非默认命名空间。 必须为 null 值或类型 BSTR 的变体。 如果 pValue 为 null 值,则当前命名空间设置为 null;否则,当前命名空间设置为变量的 BSTR 类型中保存的字符串。
MetaDataLinkerOptions 控制链接器是否应生成程序集或 .NET Framework 模块文件。 必须是类型 UI4 的变量,并且必须包含 CorLinkerOptions 枚举的值的组合。
MetaDataRuntimeVersion 指定生成此映像所基于的公共语言运行时版本。 版本存储为字符串,如“v1.0.3705”。 必须为 null 值、VT_EMPTY 值或类型 BSTR 的变体。 如果 pValue 为 null,则运行时版本设置为 null。 如果 pValue 为VT_EMPTY,则版本设置为默认值,该值取自运行元数据代码的 Mscorwks.dll 版本。 否则,运行时版本设置为变量的 BSTR 类型中保留的字符串。
MetaDataMergerOptions 指定用于合并元数据的选项。 必须是 UI4 类型的变体,并且必须包含 MergeFlags 枚举的值的组合,如 CorHdr.h 文件中所述。

要求

要求
目标平台 Windows
标头 rometadataapi.h

另请参阅

IMetaDataDispenser