如何提供对插件的辅助函数的访问?

时间:2009-02-12 20:53:29

标签: .net plugins

在我的.NET应用程序中,我允许人们添加他们的插件。但是我有几个辅助功能可以帮助他们。

为插件提供访问这些功能的最佳方法是什么?

我应该在项目中添加一个新DLL并将所有帮助方法/类放到那里并告诉插件开发人员链接该DLL吗?

我目前正在设计这个系统,之前从未开发过插件系统,所以不要做出愚蠢的决定。

3 个答案:

答案 0 :(得分:2)

我认为将DLL添加到项目并将其作为“帮助”机制的方法没有任何问题。但是,请记住,您实际上无法控制它们如何在DLL中实例化类,并且必须检查所有函数的所有输入以确保它们是有效的,而不是空的等等。

另一个想法是提供一个具有辅助函数(甚至是其他辅助接口的引用)的接口,并将其传递给插件。这样您就不必担心对象创建,并且他们如何使用加载项的向量将仅限于您在界面中公开的内容。

答案 1 :(得分:1)

托管扩展性框架(MEF)的创建是为了在代码中添加插件

MEF Programming Guide

答案 2 :(得分:1)

最终,您将通过程序集公开您的API,所以是的,将所有类的API,静态方法等作为API的一部分放入单个程序集中可能是最容易的,这样您的插件编写器将会有一个参考点。