.net - 如何在运行时向类型解析添加额外的逻辑?

标签 .net clr types

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

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

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


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


显然,等等this is working !不确定我之前做错了什么,但这个事件进展顺利。

最佳答案

AppDomain 有事件您可以使用。

您会想要 TypeResolve事件,可能还有 AssemblyResolve事件。

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

关于.net - 如何在运行时向类型解析添加额外的逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/122544/

相关文章:

.net - 使用 VB.Net 获取实现特定接口(interface)的所有类类型

.net - 您何时处置GDI +资源?

.net - 将 C# 字符串传递给非托管 C++ DLL

.net - 派生类的泛型版本可以使用泛型类型重写基方法吗?

python - 自动生成 Python 类型注释?

python - 如何根据类型转换对象类型?

c# - .NET Framework 中的哪些托管类分配(或使用)非托管内存?

c# - 在 ASP.NET MVC 中更改 View 的布局(母版页)而不重新创建它

memory - CLR Profiler - 附加到现有进程

java - Eclipse 是否有一组合理的默认类型过滤器?