Condividi tramite


Metodo IMetaDataDispenser::OpenScope

Apre un file su disco esistente e esegue il mapping dei metadati in memoria.

Sintassi

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

Parametri

szScope
[in] Nome del file da aprire. Il file deve contenere metadati CLR (Common Language Runtime).

dwOpenFlags
[in] Valore dell'enumerazione CorOpenFlags per specificare la modalità (lettura, scrittura e così via) per l'apertura.

riid
[in] Id dell'interfaccia dei metadati desiderata da restituire; il chiamante userà l'interfaccia per importare (lettura) o generare metadati (scrittura).

Il valore di riid deve specificare una delle interfacce "import" o "emit". I valori validi sono IID_IMetaDataEmit, IID_IMetaDataImport, IID_IMetaDataAssemblyEmit, IID_IMetaDataAssemblyImport, IID_IMetaDataEmit2 o IID_IMetaDataImport2.

ppIUnk
[out] Puntatore all'interfaccia restituita.

Commenti

La copia in memoria dei metadati può essere eseguita tramite query usando metodi da una delle interfacce "import" o aggiunte a usando i metodi provenienti da una delle interfacce "emetti".

Se il file di destinazione non contiene metadati CLR, il OpenScope metodo avrà esito negativo.

In .NET Framework versione 1.0 e versione 1.1, se un ambito viene aperto con dwOpenFlags impostato su ofRead, è idoneo per la condivisione. Ovvero, se le chiamate successive per OpenScope passare il nome di un file aperto in precedenza, l'ambito esistente viene riutilizzato e non viene creato un nuovo set di strutture dati. Tuttavia, i problemi possono verificarsi a causa di questa condivisione.

In .NET Framework versione 2.0 gli ambiti aperti con dwOpenFlags impostato su ofRead non sono più condivisi. Usare il valore ofReadOnly per consentire la condivisione dell'ambito. Quando un ambito è condiviso, le query che usano interfacce di metadati "lettura/scrittura" avranno esito negativo.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: Cor.h

Libreria: Usato come risorsa in MsCorEE.dll

Versioni di .NET Framework: Disponibile da 1.0

Vedi anche