pli*_*nth 10
C#有大量的ad-hoc插件系统.使用C#(在代码项目中)在插件架构中描述了一个.一般方法是宿主应用程序发布带有接口的程序集.它通过一个文件夹进行枚举,并查找定义实现其接口并加载它们并实例化类的类的程序集.
在实践中,你想要做更多.最好是主机应用程序定义两个接口,IHost和IPlugIn.IHost接口提供插件可以订阅的服务.IPlugIn构建为IHost.
要加载插件,您应该做的不仅仅是获取插件.您应该枚举所有可加载的插件.每个构建它们.问他们是否可以跑.要求他们将API导出到主机中.要求他们从主机导入API.插件应该能够询问是否存在其他插件.
这样,插件可以通过提供更多API来扩展应用程序.
PlugIns应该包含事件.这种插件可以监视插件加载和卸载的过程.
在世界末日,你应该警告插件它们会消失.然后拿出来.
这将为您提供一个可以在一个小框架中编写的应用程序,如果您愿意,可以完全在插件中实现.
作为额外的好处,您还应该这样做,以便在插件文件夹中解析插件的快捷方式.这使您可以编写应用程序并将其交付给其他人.他们可以在他们的开发环境中创建一个插件,在应用程序的插件文件夹中创建它的快捷方式,而不必担心每次编译后的部署.