Compartilhar via


Método IMetaDataDispenser::OpenScope

Abre um arquivo existente no disco e mapeie seus metadados na memória.

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

Parâmetros

  • szScope
    [in] O nome do arquivo a ser aberto. O arquivo deve conter Common Language tempo de execução metadados (CLR).

  • dwOpenFlags
    [in] Um valor igual a CorOpenFlags enumeração para especificar o modo (ler, gravar e assim por diante) de abertura.

  • riid
    [in] O IID da interface metadados desejada a ser retornado; o chamador fará com que use a interface para importar (ler) ou emitir metadados (gravar).

    O valor de riidEspecifique uma das interfaces "importação" ou "emitir". Os valores válido são IID_IMetaDataEmit, IID_IMetaDataImport, IID_IMetaDataAssemblyEmit, IID_IMetaDataAssemblyImport, IID_IMetaDataEmit2 ou IID_IMetaDataImport2.

  • ppIUnk
    [out] O ponteiro para a interface retornado.

Comentários

A cópia em memória dos metadados pode ser consultada usando métodos de uma das interfaces "importação" ou adicionados ao usando métodos de uma das interfaces "emitir".

Se o arquivo de destino não contém metadados CLR, a OpenScope método irá falhar.

No .NET estrutura versão 1.0 e versão 1.1, se um escopo é aberto com dwOpenFlags conjunto para ofRead, está qualificado para compartilhamento. Ou seja, se as chamadas subseqüentes a OpenScope passar o nome de um arquivo que foi aberto anteriormente, o escopo existente é reutilizado e um novo conjunto de estruturas de dados não é criado. No entanto, podem surgir problemas devido a esse compartilhamento.

No .NET estrutura versão 2.0, escopos aberto com dwOpenFlags definido como ofRead não são mais compartilhados. Use o valor ofReadOnly para permitir que o escopo a ser compartilhada. Quando um escopo é compartilhado, as consultas que usam "de leitura/gravar" interfaces de metadados falhará.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: Cor.h

Biblioteca: Usado sistema autônomo um recurso em MsCorEE.dll

.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Consulte também

Referência

Interface IMetaDataDispenser

Interface IMetaDataDispenserEx

Interface IMetaDataAssemblyEmit

Interface IMetaDataAssemblyImport

Interface IMetaDataEmit

Interface IMetaDataEmit2

Interface IMetaDataImport

Interface IMetaDataImport2