我正在扩展基于 MVC 3 的解决方案。
基本上,该解决方案包含一个 MVC 3 项目以及一些用于管理业务/数据访问的类库项目。
我正在尝试使用 MEF 使应用程序基于插件。例如,我UserManager
在 dll 项目中有一个类,我的插件定义如下:
[ImportMany]public List<IUserHooks> Plugins {get; set;}
foreach (var plugin in Plugins)
{
Plugin.DoTheJob();
}
如您所见,该类与 MVC 项目和控制器是分开的。该列表是我的UserManager
班级定义的。
我知道最好的方法也是UserManager
使用 MEF(可能在控制器的 ctor 中初始化它public MainController(IUserManager UserManager)
),但由于我只想为解决方案添加插件支持,而不是从头开始编写,我更喜欢最快的快捷方式。
我应该如何定义我的 MEFcontainer
对象才能在我的类库中使用它。是否也有必要使用 MEF 制作 MVC 应用程序?我更喜欢对 MVC 应用程序进行最少修改的方法。