我有一个C#.Net 2.0CF应用程序,我想在运行时加载一个.NET'插件'DLL。
据我了解,我应该可以使用System.Reflection.Assembly.LoadFrom()
将DLL加载到程序集。然后使用Assembly.GetTypes()
获取插件中的类型列表,使其与我预期的接口匹配。
问题在于,当我致电GetTypes()
时,我得到System.TypeLoadException()
。根据异常消息,我假设这是因为这个特定的插件引用了该程序一无所知的其他程序集。但是,这是它作为一个插件的一部分!我不希望我的应用程序必须知道有关这些其他程序集的任何信息。
如何在没有应用程序引用插件中使用的每个程序集的情况下加载此插件DLL?
谢谢, PaulH
答案 0 :(得分:2)
情况不是您的应用应该引用插件使用的每个程序集。插件引用另一个DLL,而不是你的应用程序,插件应该“安装”(可能只是放在一个目录中)以及它需要的一切。这是不可避免的。