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 类型中保留的字符串。 |
MetaDataMergerOptions | 指定用于合并元数据的选项。 | 必须是类型 UI4 的变体,并且必须包含 MergeFlags 枚举的值的组合,这在 CorHdr.h 文件中进行了介绍。 |
MetaDataPreserveLocalRefs | 禁止优化对定义的本地引用。 | 必须包含 CorLocalRefPreservation 枚举的值的组合。 |
要求
平台:请参阅系统要求。
标头:Cor.h
库:用作 MsCorEE.dll 中的资源
.NET Framework 版本:自 1.0 起可用