IMetaDataDispenserEx::SetOption 方法

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

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) 行为。 一次只能设置一种行为模式。

必须是 UI4 类型的变量,并必须包含一个 CorSetENC 枚举值。 该值不是位屏蔽。

MetaDataErrorIfEmitOutOfOrder

控制哪些发出顺序紊乱错误会生成回调。 发出顺序紊乱的元数据并不是致命的;但是,如果以元数据引擎支持的顺序发出元数据,则该元数据将更加紧凑,从而可以使搜索更有效率。 使用 IMetaDataEmit::SetHandler 方法可建立自己的 IMetaDataError 接口。

必须是 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 类型的字符串。

MetaDataLinkerOptions

指定用于合并元数据的选项。

必须是 UI4 类型的变量,并必须包含 MergeFlags 枚举的值的组合,该枚举在 CorHdr.h 文件中有所描述。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**Cor.h

**库:**在 MsCorEE.dll 中用作资源

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

请参见

参考

IMetaDataDispenserEx 接口

IMetaDataDispenser 接口