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 | 指定所建置的這個映像所針對的 Common Language Runtime 版本。 版本會儲存為字串,例如「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 起提供