MEFContrib.MVC3: экспорт контроллеров с базовыми классами - PullRequest
3 голосов
/ 03 сентября 2011

Я задал вопрос на CodePlex , но не получил никаких ответов вообще.

По сути, у меня есть базовый контроллер, от которого наследуются все мои контроллеры. Когда я создаю новый проект 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...
}

Изменить:

Counsellorben был совершенно прав. У меня были зависимости, которые не были должным образом помечены для экспорта, и поэтому контроллеры не могли быть правильно составлены. Я прошел через каждую из своих зависимостей, прошел через их собственные зависимости и обнаружил несколько пропущенных.

Ответы [ 2 ]

1 голос
/ 03 сентября 2011

Наиболее вероятная проблема заключается в том, что существует проблема с зависимостью в вашем классе MyController.Это вызовет проблему с любым контроллером, унаследованным от MyController.

Пожалуйста, посмотрите этот ответ для некоторого примера кода, который вы можете использовать, чтобы попытаться диагностировать вашу проблему.

0 голосов
/ 08 мая 2013

Я думаю, вам нужно украсить атрибутом InheritedExport.

...