我在扩展基于MVC 3在类库与ASP.NET MVC 3
基本上是一个解决方案的过程中,该解决方案由一个MVC 3项目的一些类库项目一起使用MEF管理业务/数据访问。
我试图使用MEF来使应用程序插件为基础。例如,我在dll项目一UserManager
类和我定义我的插件如下:
[ImportMany]public List<IUserHooks> Plugins {get; set;}
foreach (var plugin in Plugins)
{
Plugin.DoTheJob();
}
正如你所看到的,这个类是从MVC项目和控制器分离。该列表被定义为我的UserManager
类。
我知道最好的办法是让UserManager
使用MEF以及(可能在控制器的构造函数像public MainController(IUserManager UserManager)
初始化),但因为我只是想添加插件支持的解决方案,而不是从头开始写,我喜欢最快的捷径。
我应该如何定义我的MEF container
对象才能够在我的类库中使用它。是否有必要使用MEF来制作MVC应用程序?我更喜欢对MVC应用程序进行最小修改的方法。
感谢您的回答马修。我试图测试您的解决方案,并添加了一个简单的导入和导出TestDll项目。但具有“导入”属性的属性始终为空。是否有任何额外的步骤,我应该能够使用您的框架作为基地,或者我应该能够引用我的dll与导入/导出并使用它们?你有什么想法我做错了吗?谢谢。 – Kamyar 2012-04-23 08:23:43