最佳答案
我正在尝试构建一个 MVC4/MVC5应用程序,该应用程序具有像 Orchard CMS 这样的可插入架构。因此,我有一个 MVC 应用程序,这将是启动项目,并照顾认证,导航等。然后将有多个模块分别构建为 asp.net 类库或者简化 mvc 项目,并且有控制器、视图、数据回收等。
我花了一整天的时间在网上浏览教程和下载样本等,发现肯尼有最好的例子左右-http://kennytordeur.blogspot.in/2012/08/mef-in-aspnet-mvc-4-and-webapi.html
如果添加对这些 DLL 的引用,我就能够从模块(单独的 DLL)导入控制器。但是使用 MEF 背后的原因是能够在运行时添加模块。我希望将 DLL 和视图一起复制到启动项目中的 ~/Module//目录(我已经做到了这一点) ,然后 MEF 会将它们捡起来。努力让 MEF 加载这些库。
还有 MefContrib,正如这个答案中所解释的 NET MVC 4.0控制器和 MEF,如何将二者结合起来?,这是我将要尝试的下一件事情。但是我很惊讶 MEF 在 MVC 中不能开箱即用。
是否有人使用类似的架构(使用或不使用 MefContrib) ?最初我甚至想过剥离 Orchard CMS 并将其作为一个框架使用,但它太复杂了。在 MVC5中开发应用程序以利用 WebAPI2也是不错的。