c#插件系统问题

时间:2010-10-27 19:06:08

标签: c# plugins interface types

所以我实现了一个非常简单的插件系统。

我有以下装配:

MainApp
IPlugin
PluginApp

MainAppPluginApp都指向IPlugin。现在,在MainApp中,我扫描一个插件文件夹并搜索实现IPlugin接口的内容。

但是,它不起作用,因为MainAppPluginApp都引用了他们自己的IPlugin.dll副本,因此在使用Type.IsAssignableFrom()时它们不会被识别为匹配!

帮助?

1 个答案:

答案 0 :(得分:2)

您可以尝试将定义插件的代码放入卫星dll程序集中。这样,您的主代码和插件都引用了相同的类型。


如果插件可以维护它自己的dll而不是使用与应用程序相同的dll,那么您将遇到版本问题。您的主应用程序将如何处理未实现相同接口的调用插件?

当我们在自己的软件中执行此操作时,我们不得不求助于反射方法调用,而不是转换为接口。它不优雅。


如何将程序集dll添加到插件目录中。他们在创建应用程序时必须引用dll,但在插件实际运行时强制它们使用dll的主程序集版本?