在没有创建和管理自己的CLR主机的情况下,是否存在通用方法,如果找不到该类型,是否可以接管定位和加载类型?

以下只是一个例子。在急于成为第一个答案时,不要建议使用新的加载项框架或MEF作为我问题的解决方案。

示例是带加载项的示例。您的应用程序会读取一个文件,其中列出了用于特定功能的类型。该应用程序尝试实例化这些类型。如果它们当前尚未加载到appdomain中,则该方法将失败。我正在寻找一个我可以处理的事件或一个我可以提供自己的实现的组件,这将使我能够优雅地处理这些情况并为加载这些组件提供额外的逻辑。


据我所知(除非某人有一个有效的例子)当找不到某个类型时,所有提到的AppDomain事件都不会触发。


等等,显然这是有效的!我不确定之前我做错了什么,但是这个事件好起来很好。

有帮助吗?

解决方案

您可以使用 AppDomain 上的活动使用

您需要 TypeResolve 活动,以及可能是 AssemblyResolve 事件。

此外,您可以详细了解 .net运行时如何解决程序集,所以你可以在探测部分定义这个信息。

其他提示

仅使用AppDomain事件是不是可能?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top