2009-02-12 50 views
1

在我的.NET应用程序中,我允许人们添加他们的插件。不过,我有几个帮助他们的帮助函数。如何为插件提供对辅助函数的访问?

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

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

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

回答

2

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

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

+0

对于那些没有时间投资于另一个框架的人,我完全同意。 – 2009-02-13 02:30:34

1

托管扩展框架(MEF)是通过组件添加插件代码

MEF Programming Guide

+0

你知道如何在MEF中做到这一点吗?我用接口实现了MEF,它工作的很好,但是辅助函数呢?我看不到任何关于此的网页。 – 2009-02-13 10:57:58

1

最终你会暴露你的API的想法创建的,所以是的,它可能是最简单的把所有的类,静态方法等等,这些都是API的一部分,所以你的插件编写者将有一个单一的参考点。

相关问题