У меня есть вопрос относительно того, как настроенный мной контейнер Unity разрешает зависимости контроллера. Я искал объяснение этому, но не нашел ничего действительно ясного по этому вопросу. И, возможно, ответ смотрит мне в глаза ... Взгляните на следующий код, который, я уверен, многие ребята из MVC видели:
protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
{
IController controller;
try
{
controller = container.Resolve(controllerType) as IController;
}
catch (Exception ex)
{
throw new InvalidOperationException(string.Format("Error resolving controller {0}", controllerType.Name), ex);
}
return controller;
}
Итак, это мое переопределение GetControllerInstance
на моей фабрике контроллеров, которую я настроил. Очевидно, типы контроллеров разрешаются из контейнера Unity, но как они в первую очередь регистрируются в контейнере? Как среда MVC знает, как регистрировать типы в контейнере? Я понимаю, что типы разрешаются из этого контейнера, но мне не нравится не знать , как разрешает типы контроллеров.