允许和实现应用程序的插件系统的标准方法是什么?
在我的上一个应用程序中,我为他们必须实现的所有插件创建了一个简单的界面.然后我在apps目录中加载所有程序集,并抛弃任何不实现该接口的程序集.
接口中的一个方法是DoWork()方法,该方法定期在所有已加载的程序集上调用,以执行插件可能具有的任何操作.
什么是"适当"的插件系统方式?你刚刚为插件创建了一个接口吗?你应该定期在所有插件中调用特定方法吗?有更复杂的方式吗?
编辑:
感谢Matt Hamilton对System.Addin命名空间的引用.这很可能是我实现插件的方式.但是,我仍然对插件体系结构一般感到好奇,并且不介意一些关于它们应该被设计的最佳方式的背景知识,以及如何在加载后如何调用它们等等.
根据对类似问题的响应,查看System.AddIn命名空间.
微软的Glenn Block和Brad Abrams最近发布了Managed Extensibility Framework,它提供了一个框架,用于处理您正在谈论的内容.
文档和下载可在此处获得.
Glenn和Brad的博客也是MEF的重要资源.