Я использую Simple Injector в качестве контейнера IoC. SimpleInjector использует этот простой метод для обработки смешанных стиль жизни для Per Thread и Per Web Request
container.RegisterPerWebRequest<IWebUnitOfWork, UnitOfWork>();
container.RegisterLifetimeScope<IThreadUnitOfWork, UnitOfWork>();
container.Register<IUnitOfWork>(() => container.GetInstance<UnitOfWork>());
// Register as hybrid PerWebRequest / PerLifetimeScope.
container.Register<UnitOfWork>(() =>
{
if (HttpContext.Current != null)
return container.GetInstance<IWebUnitOfWork>() as UnitOfWork;
else
return container.GetInstance<IThreadUnitOfWork>() as UnitOfWork;
});
Я хочу украсить интерфейс IUnitOfWork
такими классами, как UnitOfWorkAuthoriseDecorator
, UnitOfWorkExceptionDecorator
и UnitOfWorkTraceDecorator
. Что мне украсить?
IUnitOfWork
IWebUnitOfWork
иIThreadUnitOfWork
IUnitOfWork
иIWebUnitOfWork
иIThreadUnitOfWork
UnitOfWork
- что-то другое