Как настроить контейнер Unity в приложении MVC - PullRequest
2 голосов
/ 31 августа 2011

У меня проблемы с использованием контейнера Юнит в приложении ASP.NET MVC3.

У меня есть несколько проектов с интерфейсами и их реализацией.Весь интерфейс с привязкой к конкретному типу выполняется в методе запуска приложения.

У меня есть несколько проблем с этим подходом:

1) Как обрабатывать регистрацию типов, которые не требуются непосредственно приложению MVCно по классам, которые он использует (репозиторий использует ContextManager для извлечения экземпляра контекста).Если этот класс находится в сборке, которая не используется приложением mvc, я должен добавить ссылку на него.

2) Как открыть общий доступ к настроенному контейнеру?Должен ли я создать отдельную сборку со статическим классом, в котором будет храниться созданный контейнером приложений mvc?

3) Какой тип использования единственного контейнера может привести к проблемам с многопоточностью?Как зарегистрировать синглтоны, чтобы они были доступны только в этой теме (вызов веб-сервера) и т. Д.

1 Ответ

2 голосов
/ 31 августа 2011
  1. Вы должны явно ссылаться на все сборки в вашем приложении ASP.NET MVC. Это самый внешний слой в луковой архитектуре , и ему разрешено знать о внутренних слоях. В любом случае все сборки должны находиться в папке bin, чтобы приложение ASP.NET MVC так или иначе узнало о них. Просто перенесите конфигурацию вашей DI-инфраструктуры в одно место в вашем приложении ASP.NET MVC.
  2. См. 1.
  3. Хранение данных в потоке может быть опасным в ASP.NET. По HTTP-контексту лучше.
...