c# - 延迟加载 .net 插件 dll

标签 c# dll compact-framework plugins c#-2.0

我有一个 C# .Net 2.0CF 应用程序,我想在运行时加载一个 .NET“插件”DLL。

据我了解,我应该能够使用 System.Reflection.Assembly.LoadFrom() 将 DLL 加载到程序集。然后使用 Assembly.GetTypes() 获取插件中的类型列表,以将它们与我预期的接口(interface)相匹配。

问题是当我调用 GetTypes() 时,我得到了一个 System.TypeLoadException()。根据异常消息,我假设这是因为这个特定的插件引用了这个程序一无所知的其他程序集。但是,这就是它作为插件的部分意义所在!我不希望我的应用程序必须知道关于这些其他程序集的任何信息。

如何在我的应用程序不引用插件中使用的每个程序集的情况下加载此插件 DLL?

谢谢, 保罗H

最佳答案

情况并不是您的应用程序应该引用插件使用的每个程序集。插件引用另一个 DLL,而不是您的应用程序,并且应该“安装”插件(可能只是放在目录中)及其所需的一切。这是不可避免的。

关于c# - 延迟加载 .net 插件 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2390327/

相关文章:

c# - 为什么不接受 IEnumerable(of T) 作为扩展方法接收器

c# - 作为 "slave"调用的命令行程序被认为是动态链接的?

.net - Compact Framework - Image.FromStream (Stream, Boolean, Boolean) 的任何实现?

c# - 为什么所有内容都打印在同一行上,即使我添加了 crlfs?

c++ - 将 Qt Qml 应用程序部署到 Windows 8 显示一个空白窗口

c# - Hook API 函数 GetSystemMetrics

C# 如何提取完整的xml节点集

c# - 可空 DateTime 与依赖默认值 ( DateTIme )

c# - 无法使用 IP 地址连接到应用程序

python - 由于缺少 MSVCP90.dll,无法使用 gui2exe 创建 Windows .exe