在c# . net 2.0中实现插件架构,无需额外的接口库



我必须为我的应用程序实现一个插件架构。

我有主应用程序和库,我需要在运行时加载。我需要我的主应用程序了解dll中定义的类,以便在动态调用期间正确处理它们。

我是否需要实现额外的dll与接口来实现这一目标,或者它是一些其他的方式做到这一点?

可以使用程序集加载库。加载,然后需要一种方法来检测需要实例化的类型。你可以用接口(即IPlugin)标记类,然后看看你正在检查的类型是否可以使用IsAssignableFrom方法分配给IPlugin类型。另一种方法是用自定义属性标记你的类,看看你正在检查的类型是否有这个属性(即PluginAttribute)。在这两种情况下,你都需要把接口或属性类放在第三个库中,这样它就可以在主应用程序和插件库中被引用。

您可以使用程序集。加载,然后使用反射来检查共享接口/属性的类型。

您考虑过托管可扩展性框架吗?该链接还有一个很好的示例

相关内容

  • 没有找到相关文章

最新更新