Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 MEFContrib.MVC3:导出具有基类的控制器_Asp.net Mvc 3_Controller_Export_Mef - Fatal编程技术网

Asp.net mvc 3 MEFContrib.MVC3:导出具有基类的控制器

Asp.net mvc 3 MEFContrib.MVC3:导出具有基类的控制器,asp.net-mvc-3,controller,export,mef,Asp.net Mvc 3,Controller,Export,Mef,我提出了一个问题,但根本没有收到任何答复 基本上,我有一个基本控制器,我的所有控制器都从中继承。当我创建一个新的MVC3项目,将我的控制器放入另一个程序集中,并将MEFContrib.MVC3添加到该项目中时,一切都很好。当我从我的基类继承任何控制器时,它们就再也找不到了 我对MEFContrib不太熟悉,不知道到底是什么在破坏,但我尝试用ExportAttributes装饰我的控制器,但这也没有起作用 所有这些都与主MVC项目不同: public class MyBaseController

我提出了一个问题,但根本没有收到任何答复

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

我对MEFContrib不太熟悉,不知道到底是什么在破坏,但我尝试用
ExportAttribute
s装饰我的控制器,但这也没有起作用

所有这些都与主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...
}
编辑:


奥本顾问完全正确。我的依赖项没有正确标记为导出,因此无法正确组合控制器。我仔细检查了我的每个依赖项,仔细检查了它们自己的依赖项,发现了我遗漏的几个依赖项。

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


请参阅一些示例代码,您可以使用它们来尝试诊断问题所在。

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

请指定导入MyController类的任何依赖项。最可能的问题是MyController类中存在依赖项问题,这会导致从MyController继承的任何控制器出现同样的问题。@Councellorben-我要看一看,看看是否是这样的情况。@Councellorben-我能够创建一个带有基类和依赖项的示例项目,它工作得很好。如果你创造一个答案,我会接受,因为这似乎是我的问题。正在尝试将应用程序从Ninject移植到MEFContrib的IoC。看来要找出依赖关系还需要一些工作。顺便问一下,有没有办法知道是哪些依赖性导致MEF无法组成正确的部分?谢谢,内特。事实上,这是因为我错过了一个依赖关系——只是一个愚蠢的错误。