我正在尝试使用像Orchard CMS这样的可插入架构来构buildMVC4 / MVC5应用程序。 所以我有一个MVC应用程序,这将是启动项目和照顾auth,导航等。然后将有多个模块单独构build为asp.net类库或剥离mvc项目,并有控制器,视图,数据仓库等。 我已经花了整整一天的时间在网上的教程和下载样本等,发现肯尼有最好的例子 – http://kennytordeur.blogspot.in/2012/08/mef-in-aspnet-mvc-4-and -webapi.html 我能够从模块(独立的DLL)中导入控制器,如果我添加对这些DLL的引用。 但是使用MEF的原因是能够在运行时添加模块。 我希望将DLL和视图一起复制到启动项目的〜/ Modules //目录中(我设法做到了这一点),MEF只会把它们选中。 努力使MEF加载这些库。 还有MefContrib在这个答案解释ASP.NET MVC 4.0控制器和MEF,如何把这两个一起? 这是我将要尝试的下一件事情。 但是我很惊讶,MEF没有像MVC那样开箱即可。 有没有人有类似的架构工作(有或没有MefContrib)? 最初,我甚至想到剥离Orchard CMS并将其用作框架,但这太复杂了。 在MVC5中开发应用程序以利用WebAPI2也是很好的。
我希望通过直接引用插件项目和实例化插件类来testing插件的核心类。 当我创build一个testing控制台应用程序项目并添加项目引用到插件项目时,我会在参考列表中的参考旁边看到一个警告图标(带有感叹号的黄色三angular形)。 当我反而添加一个引用的DLL,组件生成插件的输出,我没有得到这样的警告。 这个警告能告诉我什么?
托管扩展性框架(MEF)和托管添加框架(MAF,又名System.AddIn)似乎完成了非常类似的任务。 根据这个堆栈溢出的问题, 是MEF的替代System.Addin? ,你甚至可以同时使用两者。 你什么时候选择使用一个而不是另一个? 在什么情况下,你会选择一起使用?