Поделиться через


Метод IMetaDataDispenser::OpenScope

Открывает существующий файл, расположенный на диске, и отображает содержащиеся в нем метаданные в память.

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

Параметры

  • szScope
    [in] Имя файла, который необходимо открыть. Файл должен содержать метаданные среды 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 области, которые с использованием параметра dwOpenFlags, для которого задано значение ofRead, больше не используются совместно. Чтобы область стала доступной для совместного использования, нужно воспользоваться значением ofReadOnly. При совместном использовании области запросы, для которых применяются интерфейсы метаданных "чтения-записи", приводят к сбою.

Требования

Платформы: см. раздел Требования к системе для .NET Framework.

Заголовок: Cor.h

Библиотека: используется как ресурс в MsCorEE.dll

Версии платформы .NET Framework: 4, 3.5 с пакетом обновления 1 (SP1), 3.5, 3.0 с пакетом обновления 1 (SP1), 3.0, 2.0 с пакетом обновления 1 (SP1), 2.0, 1.1, 1.0

См. также

Ссылки

Интерфейс IMetaDataDispenser

Интерфейс IMetaDataDispenserEx

Интерфейс IMetaDataAssemblyEmit

Интерфейс IMetaDataAssemblyImport

Интерфейс IMetaDataEmit

Интерфейс IMetaDataEmit2

Интерфейс IMetaDataImport

Интерфейс IMetaDataImport2