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 起提供

另請參閱