【问题标题】:How can you add additional logic to type resolution at runtime?如何在运行时为类型解析添加额外的逻辑?
【发布时间】:2010-09-12 11:03:02
【问题描述】:

是否有一种通用方法,无需创建和管理您自己的 CLR 主机,在找不到该类型时接管定位和加载该类型?

以下只是一个例子。如果您急于成为第一个答案,请不要建议使用新的插件框架或 MEF 作为我的问题的解决方案。

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


据我所知(除非有人有一个有效的例子)到目前为止提到的 AppDomain 事件都不会在找不到类型时触发。


等等,显然是this is working!不知道我之前做错了什么,但这个事件触发得很好。

【问题讨论】:

标签: .net clr types


【解决方案1】:

AppDomain 上有可以使用的事件。

您可能需要TypeResolve 事件,也可能需要AssemblyResolve 事件。

此外,您可以阅读更多关于.net runtime resolves assemblies 的信息,因此您可以在探测部分定义此信息。

【讨论】:

    【解决方案2】:

    难道不能只使用 AppDomain 事件吗?

    【讨论】:

      猜你喜欢
      • 2014-08-11
      • 1970-01-01
      • 2016-10-28
      • 1970-01-01
      • 2022-08-19
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多