将指定的选项设置为当前元数据范围的给定值。 该选项控制如何处理对当前元数据范围的调用。
Syntax
HRESULT SetOption (
[in] REFGUID optionId,
[in] const VARIANT *pValue
);
Parameters
optionId [in]指向 GUID 的指针,指定要设置的选项。
pValue [in]用于设置选项的值。 此值的类型必须是指定选项类型的变体。
Remarks
下表列出了参数可指向的可用 GUID optionId 以及参数的相应有效值 pValue 。
| GUID | Description |
pValue 参数 |
|---|---|---|
| MetaDataCheckDuplicatesFor | 控制检查哪些项是否存在重复项。 每次调用创建一个新项的 IMetaDataEmit 方法时,都可以请求该方法检查该项是否已存在于当前范围内。 例如,可以检查 mdMethodDef 是否存在项;在本例中,调用 IMetaDataEmit::D efineMethod 时,它将检查方法是否尚不存在于当前作用域中。 此检查使用唯一标识给定方法的密钥:父类型、名称和签名。 |
必须是 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 模块文件。 | 必须是 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 枚举的值的组合。 |
Requirements
平台: 请参阅 .NET 支持的作系统。
Header: Cor.h
Library: CorGuids.lib