IHostAssemblyManager::GetNonHostStoreAssemblies 方法

获取指向 ICLRAssemblyReferenceList 的接口指针,该参数表示主机预计公共语言运行时 (CLR) 加载的程序集列表。

语法

HRESULT GetNonHostStoreAssemblies (  
    [out] ICLRAssemblyReferenceList **ppReferenceList  
);  

参数

ppReferenceList
[out] 指向 ICLRAssemblyReferenceList 地址的指针,其中包含主机预计 CLR 加载的程序集的引用列表。

返回值

HRESULT 说明
S_OK 已成功返回 GetNonHostStoreAssemblies
HOST_E_CLRNOTAVAILABLE CLR 未加载到进程中,或 CLR 处于无法运行托管代码或无法成功处理调用的状态。
HOST_E_TIMEOUT 调用超时。
HOST_E_NOT_OWNER 调用方未持有锁。
HOST_E_ABANDONED 阻塞的线程或纤程正在等待某一事件,而该事件已被取消。
E_FAIL 发生未知的灾难性故障。 当方法返回 E_FAIL 时,进程中无法再使用 CLR。 后续调用承载方法会返回 HOST_E_CLRNOTAVAILABLE。
E_OUTOFMEMORY 内存不足,无法创建请求 ICLRAssemblyReferenceList 的引用列表。

注解

CLR 使用以下一组准则来解析引用:

  • 首先,它会查询由 GetNonHostStoreAssemblies 返回的程序集引用列表。

  • 如果该程序集出现在列表中,则 CLR 正常绑定该程序集。

  • 如果程序集未出现在列表中,并且主机已提供 IHostAssemblyStore 的实现,则 CLR 将调用 IHostAssemblyStore::ProvideAssembly,以允许主机提供要绑定的程序集。

  • 否则,CLR 无法绑定程序集。

如果主机将 ppReferenceList 设置为 null,则 CLR 首先会探测全局程序集缓存,调用 ProvideAssembly,然后探测应用程序基以解析程序集引用。

备注

初始化后,CLR 只调用 GetNonHostStoreAssemblies 一次。 不会再次调用此方法。

要求

平台:请参阅系统要求

标头:MSCorEE.h

库:作为资源包含在 MSCorEE.dll 中

.NET Framework 版本:自 2.0 起可用

另请参阅