MEF与MVC 4,获得出口ApiControllers

时间:2015-05-07 13:25:21

标签: asp.net-mvc mef asp.net-apicontroller

我正在尝试使用MEF和MVC构建可插拔架构。我有MVC应用程序,它将负责加载模块(其他mvc项目)。我的想法是将模块复制粘贴到某个文件夹中,然后弹出模块。

无论如何,我想从模块组件中获取导出的(就MEF Export而言)API控制器。

[Export("TestModuleApi", typeof(IHttpController))]
[PartCreationPolicy(CreationPolicy.NonShared)]
public class TestModuleApiController : ApiController
{
    [HttpGet]
    public object Get()
    {
        return "HomeApi";
    }
}

我无法找到有关如何实现这一目标的更多信息。

然而,我能够得到正常的'具有IControllerFactory自定义实现的mvc控制器,在CreateController方法中,我从CompositionContainer的导出对象中获取所请求的控制器。 但IControllerFactory仅提供IController个对象,而不是IHttpControllerApiController)。

我试图实现自定义IHttpControllerActivator但没有成功。当我尝试浏览模块中的网址(例如api\TestModuleApi\Get)时,我收到的是404,而我甚至没有进入自定义激活器的Create方法。

任何帮助将不胜感激。

0 个答案:

没有答案