我已经提出问题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...
}
修改
咨询顾问是完全正确的。我的依赖项未正确标记为导出,因此控制器无法正确组合。我逐步介绍了每个依赖项,逐步介绍了自己的依赖项,找到了我错过的几个。答案 0 :(得分:1)
最可能的问题是您的MyController
课程中存在依赖关系问题。这将导致任何从MyController继承的控制器出现问题。
请参阅this answer,了解可用于尝试和诊断问题所在的示例代码。
答案 1 :(得分:0)
我认为您需要使用InheritedExport
属性进行装饰。