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