共用方式為


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 連接點 (Connection Point) 容器的緊密耦合事件 (Tightly Coupled Event,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 檔案中有對此說明。

需求

**平台:**請參閱 .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

請參閱

參考

IMetaDataDispenserEx 介面

IMetaDataDispenser 介面