我有一个 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/