微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

系统与插件在C#

我必须开发一个监控传感器信息的系统,但将来可能会添加许多传感器.

也就是说,这个想法将是开发一个由应用程序框架组成的系统.传感器(每个都具有其通信和数据呈现特性)将作为插件添加到系统中.

我如何在C#上编写代码?是组件驱动开发的一个例子吗?我应该使用动态库吗?

解决方法

C#有很多ad-hoc插件系统.一个描述在 Plugin Architecture using C#( The Code Project).一般的方法是主机应用程序发布具有接口的程序集.它通过一个文件夹枚举,并找到定义一个实现其接口并加载它们并实例化类的类的程序集.

实际上你想做更多的事情.如果主机应用程序定义了两个接口(IHost和IPlugIn),则最好. IHost界面提供插件可以订阅的服务. IPlugIn构建了一个IHost.

要加载插件,你应该做的不仅仅是一个插件.您应该枚举所有可加载的插件.构建它们.问他们是否可以跑.请他们将API导出到主机中.请他们从主机导入API.插件应该能够询问其他插件的存在.

这样,插件可以通过提供更多的API来扩展应用程序.

插件包括事件.这样插件可以监控插件加载和卸载的过程.

在世界最后,你应该警告插件,他们将要消失.然后把它们拿出来

这将给你一个可以在一个很小的框架中编写的应用程序,如果你想要的话可​​以完全在插件中实现.

作为一个额外的好处,您还应该使其在插件文件夹中解决插件的快捷方式.这可以让您编写应用程序并将其传递给其他人.他们可以在其开发环境中创建一个插件,在应用程序的插件文件夹中创建一个快捷方式,而不必担心在每次编译之后部署.

原文地址:https://www.jb51.cc/csharp/95302.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐