MEFContrib.MVC3:使用基类导出控制器

时间:2011-09-02 22:27:14

标签: asp.net-mvc-3 controller export mef

我已经提出问题on CodePlex,但根本没有收到任何回复。

基本上,我有一个基本控制器,我的所有控制器都继承自。当我创建一个新的MVC3项目时,将我的控制器放在另一个程序集中,并将MEFContrib.MVC3添加到项目中,一切都很好。当我使任何控制器从我的基类继承时,它们就再也找不到了。

我对MEFContrib不太熟悉,知道究竟是什么打破了,但是我试图用ExportAttribute来装饰我的控制器,而且还没有用。

所有这些都是与主要MVC项目不同的程序集:

public class MyBaseController : Controller
{
    ...
}

//  This controller cannot be found.
public class HomeController : MyBaseController
{
    public ActionResult Index ()
    {
        // Do Stuff
        return View ();
    }
}

// This controller can be found.
public class HomeController : Controller
{
    // yada, yada, yada...
}

修改

咨询顾问是完全正确的。我的依赖项未正确标记为导出,因此控制器无法正确组合。我逐步介绍了每个依赖项,逐步介绍了自己的依赖项,找到了我错过的几个。

2 个答案:

答案 0 :(得分:1)

最可能的问题是您的MyController课程中存在依赖关系问题。这将导致任何从MyController继承的控制器出现问题。

请参阅this answer,了解可用于尝试和诊断问题所在的示例代码。

答案 1 :(得分:0)

我认为您需要使用InheritedExport属性进行装饰。