Когда я начал с Виндзора, я думал, что D будет простым. Теперь это вызывает у меня все больше и больше путаницы.
Хранилище поражает меня как класс с единственным жизненным циклом. У меня должен быть один экземпляр FooRepository для загрузки и сохранения Foos в базе данных при жизни приложения.
Тем не менее, каждый репозиторий содержит ссылку на UnitOfWork, который выполняет грязную проверку, работает с базой данных и т. Д. У UnitOfWork есть жизненный цикл PerWebRequest - для UnitOfWork вообще не имеет смысла быть одиночным, как Например, экземпляр singleton может сбрасывать изменения, внесенные несколькими пользовательскими сеансами одновременно.
Итак, у меня есть одноэлементный FooRepository, содержащий ссылку на UnitOfWork, который в конце сеанса удаляется! Я даже не уверен, какое влияние это окажет на поведение хранилища, но это звучит не очень хорошо.
Может ли кто-нибудь объяснить простым языком (хорошо, может быть, с некоторым кодом) подходящий способ управления жизненным циклом классов Repository и UnitOfWork в веб-приложении?