I use structuremap library and following code to config DI in a WinForm App:
private static void InitializeStructureMap()
{
ObjectFactory.Initialize(x =>
{
x.For<IUnitOfWork>().HybridHttpOrThreadLocalScoped().Use
<CouponContext>();
x.For<ICouponService>().Use<EFCouponService>();
x.For<IUserService>().Use<EFUserService>();
});
}
also i use following code to GetInstance of Classes in a form:
private IUnitOfWork uow;
private IUserService userService;
public LoginForm()
{
InitializeComponent();
uow = ObjectFactory.GetInstance<IUnitOfWork>();
userService = ObjectFactory.GetInstance<IUserService>();
}
How is the life cycle of UnitOfWork in my App?
By default it’s per request, but you can configure it
From documentation: