IMetaDataImport::ResolveTypeRef 方法 (rometadataapi.h)

解析由指定的 TypeRef 标记表示的类型引用。

语法

HRESULT ResolveTypeRef(
  [in]          mdTypeRef tkTypeRef,
  [in]          REFIID    riid,
  [out]         IUnknown  **ppIScope,
  [out, retval] mdTypeDef *ptkTypeDef
);

参数

[in] tkTypeRef

要返回其引用的类型信息的 TypeRef 元数据标记。

[in] riid

在 ppIScope 中返回的接口的 IID。 通常此值可以为 IID_IMetaDataImport。

[out] ppIScope

一个指向在其中定义引用类型的模块范围的接口。

[out, retval] ptkTypeDef

指向 TypeDef 标记的指针,该标记表示引用的类型。

返回值

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

重要 如果加载了多个应用程序域,请不要使用此方法。 此方法不采用应用程序域边界。 如果加载了程序集的多个版本,并且它们包含同一命名空间的同一类型,则方法将返回找到的第一个类型的模块范围。
 
ResolveTypeRef 方法在其他模块中搜索类型定义。 如果找到类型定义, ResolveTypeRef 将返回该模块范围的接口以及该类型的 TypeDef 标记。

如果要解析的类型引用的解析范围为 AssemblyRef,则 ResolveTypeRef 方法仅在已通过调用 IMetaDataDispenser::OpenScope 方法或 IMetaDataDispenser::OpenScopeOnMemory 方法打开的元数据范围中搜索匹配项。 这是因为 ResolveTypeRef 无法仅从 AssemblyRef 范围确定程序集在磁盘上或全局程序集缓存中存储程序集的位置。

要求

要求
目标平台 Windows
标头 rometadataapi.h

另请参阅

IMetaDataImport