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