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 值可允许共享作用域。 共享作用域时,使用“读/写”元数据接口的查询会失败。
要求
平台:请参阅系统要求。
标头:Cor.h
库:用作 MsCorEE.dll 中的资源
.NET Framework 版本:自 1.0 起可用