Я прочитал документацию SimpleInjector несколько раз. Но имейте несколько вопросов.Конфигурация SimpleInjector для шаблонов WebApi и UnitOfWork
Контекст:
- 3 уровня приложения (презентация (MVC + контроллеры API), сервис (бизнес-логика), данные (хранилища, организации и т.д.)
- Единица работы представляет собой тонкую оболочку вокруг EF-х DbContext
- мой DbContext и единица работы регистрируются PerWebRequest, используя RegisterWebApiRequest вызывает исключение, поскольку единица работы используется вне запросов Web API.
- мои MVC и Api контроллеры зарегистрированы с использованием RegisterWebApiControllers (GlobalConfiguration.Configuration) и RegisterMvcControllers (Assembly.GetExecutingAssembly())
- Каждый контроллер имеет один или несколько услуг, инжектированных в него.
- Каждая служба имеет один или несколько хранилищ, введенных в нее.
- У службы также может быть введена другая услуга.
- Я хочу, чтобы тот же Unit of Work/DbContext существовал во всех моих сервисах/хранилищах.
Вопросы:
Поскольку я использую услуги в моих контроллеров MVC, а также контроллеры API; означает ли это, что я не могу использовать RegisterWebApiRequest вместо RegisterPerWebRequest?
ни одна из моих служб, репозиториев и т. Д. Не поддерживает любое состояние, я получал бы такую же функциональность, используя PerWebRequest как Transient; есть ли преимущество использования PerWebRequest по сравнению с переходным процессом?
Возможный дубликат [Как настроить простой контейнер-инжектор и lifestylse в веб-приложении MVC с помощью WebAPI, WCF, SignalR и Background Taks] (http://stackoverflow.com/questions/26433012/how-to-configure-simple -injector-container-and-lifestylse-in-a-mvc-web-app-with) – Steven