共用方式為


IMetaDataDispenser::OpenScope 方法

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

語法

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 版中,如果範圍是以 dwOpenFlags 設定為 ofRead 開啟,它就有資格共用。 也就是說,如果後續呼叫將 OpenScope 傳入先前開啟的檔案名,則會重複使用現有的範圍,而且不會建立新的資料結構。 不過,可能會因為此共用而發生問題。

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

規格需求

平台:請參閱系統需求

標頭:Cor.h

程式庫:作為 MSCorEE.dll 中的資源使用

.NET Framework版本:自 1.0 起提供

另請參閱