IMetaDataDispenserEx::SetOption 方法

更新: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

请参见

参考

IMetaDataDispenserEx

IMetaDataDispenser