在没有创建和管理自己的CLR主机的情况下,是否存在通用方法,如果找不到该类型,是否可以接管定位和加载类型?
以下只是一个例子。在急于成为第一个答案时,不要建议使用新的加载项框架或MEF作为我问题的解决方案。
示例是带加载项的示例。您的应用程序会读取一个文件,其中列出了用于特定功能的类型。该应用程序尝试实例化这些类型。如果它们当前尚未加载到appdomain中,则该方法将失败。我正在寻找一个我可以处理的事件或一个我可以提供自己的实现的组件,这将使我能够优雅地处理这些情况并为加载这些组件提供额外的逻辑。
据我所知(除非某人有一个有效的例子)当找不到某个类型时,所有提到的AppDomain事件都不会触发。
等等,显然是this is working!我不确定之前我做错了什么,但是这个事件好起来很好。
答案 0 :(得分:4)
您可以使用AppDomain上的活动。
您需要TypeResolve事件,可能还需要AssemblyResolve事件。
此外,您可以阅读有关.net runtime resolves assemblies的更多信息,因此您可以在探测部分中定义此信息。
答案 1 :(得分:0)
仅使用AppDomain事件是不是可能?