共用方式為


IMetaDataDispenser::OpenScope 方法

更新:2007 年 11 月

開啟現有、磁碟上的檔案,並將它的中繼資料對應至記憶體。

HRESULT OpenScope (
    [in]  LPCWSTR     szScope, 
    [in]  DWORD       dwOpenFlags, 
    [in]  REFIID      riid, 
        [out] IUnknown    **ppIUnk
);

參數

  • szScope
    [in] 要開啟的檔案名稱。此檔案必須包含 Common Language Runtime (CLR) 中繼資料。

  • dwOpenFlags
    [in] CorOpenFlags 列舉型別的值,指定開啟模式 (讀取、寫入等等)。

  • riid
    [in] 要傳回之所需中繼資料介面的 IID,呼叫端會使用此介面來匯入 (讀取) 或發出 (寫入) 中繼資料。

    riid 的值必須指定「匯入」或「發出」介面的其中一個。有效值為 IID_IMetaDataEmit、IID_IMetaDataImport、IID_IMetaDataAssemblyEmit、IID_IMetaDataAssemblyImport、IID_IMetaDataEmit2 或 IID_IMetaDataImport2。

  • ppIUnk
    [out] 傳回之介面的指標。

備註

中繼資料的記憶體中複本可以透過其中一個「匯入」介面的方法進行查詢,或透過其中一個「發出」介面的方法進行加入。

如果目標檔案沒有包含 CLR 中繼資料,則 OpenScope 方法會失敗。

在 .NET Framework 1.0 版和 1.1 版中,如果以設定為 ofRead 的 dwOpenFlags 來開啟範圍,則它適合共用。也就是說,如果 OpenScope 的後續呼叫傳入先前已開啟的檔案名稱,則會重複使用現有範圍,而且不會建立一組新的資料結構。不過,會因為此共用而發生問題。

在 .NET Framework 2.0 版中,以設定為 ofRead 的 dwOpenFlags 所開啟的範圍不再是共用的。若要允許共用此範圍,請使用 ofReadOnly 值。當共用範圍時,使用「讀取/寫入」中繼資料介面的查詢會失敗。

需求

**平台:**請參閱 .NET Framework 系統需求

**標頭:**Cor.h

**程式庫:**當做 MsCorEE.dll 中的資源使用

**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

請參閱

參考

IMetaDataDispenser

IMetaDataDispenserEx

IMetaDataAssemblyEmit

IMetaDataAssemblyImport

IMetaDataEmit

IMetaDataEmit2

IMetaDataImport

IMetaDataImport2