Sto sviluppando una serie di classi di repository e una classe UnitOfWork (più ovviamente la sua interfaccia IUnitOfWork). Sto usando Castle Windsor, che inietta le dipendenze tramite i costruttori.
Il mio livello aziendale ha classi come "CustomerBusinessLogic", con metodi come RetrieveCustomer, SaveCustomer, ecc. Questi a loro volta usano UOW per eseguire le operazioni del database.
Non riesco a trovare come / dove la classe BLL dovrebbe ottenere un'istanza di UOW. Non sembra giusto iniettarlo nel ctr, come un'unità di lavoro è esattamente questo - un'unità di lavoro! Penso che un singolo metodo (LoadCustomer, SaveCustomer) dovrebbe essere responsabile per l'istanziazione dell'UOW per tutta la durata della sua operazione. Tuttavia, fare questo significa ricorrere a un localizzatore di servizi, che è un anti-pattern.
Suggerimenti benvenuti!