在我们的一个Java EE环境中,我们能够将模块封装在Java ear文件中,并将它们部署到我们的JBoss环境中,以便它们能够被拾取并提供给用户。在.Net世界中,如何在运行时环境中实现类似的功能?这是MEF进来的地方吗?或者它会以完全不同的方式接近?.Net相当于可部署的EAR
任何建议将不胜感激。
感谢,
小号
在我们的一个Java EE环境中,我们能够将模块封装在Java ear文件中,并将它们部署到我们的JBoss环境中,以便它们能够被拾取并提供给用户。在.Net世界中,如何在运行时环境中实现类似的功能?这是MEF进来的地方吗?或者它会以完全不同的方式接近?.Net相当于可部署的EAR
任何建议将不胜感激。
感谢,
小号
您可以只需将它们编译成一个单独的程序。这些模块组件可以与主应用程序分开分发。
当你在MEF撰写你的对象,你可以指定一个DirectoryCatalog
(或ApplicationCatalog
),包括在一个给定的目录中的所有组件的所有模块:
var catalog = new DirectoryCatalog(".\modules");
var container = new CompositionContainer(catalog);
感谢p.s.w.g所以MEF,然后检查添加到目录中显示的项目? – scarpacci 2013-04-08 17:57:25
@scarpacci您是否在运行时动态地[重新组织](http://mef.codeplex.com/wikipage?title=Recomposition)?我自己并没有尝试过,但这看起来很有希望。 – 2013-04-08 17:59:42
看一看MEF第一。请注意,MEF不是插件框架。如果它不够,你想要一个完整的插件框架看看mono.addins – 2013-04-09 10:25:13