我该如何转换:
For<ISession>().Use(ctx => {
var uow = (INHibernateUnitOfWork)ctx.GetInstance<IUnitOfWork>();
return uow.Session;
});
到Ninject?
我能够转换它:
For<ISessionSource>().Singleton().Use<NHibernateSessionSource>();
到
Bind<ISessionSource>()
.To<NHibernateSessionSource>()
.InSingletonScope()
我认为我也可以转换这个:
For<IUnitOfWork>().HybridHttpOrThreadLocalScoped().Use<NHibernateUnitOfWork>();
到
Bind<IUnitOfWork>().To<NHibernateUnitOfWork>().InThreadScope();
我知道这些并非都是一对一的,但我可以得到一些帮助吗?
答案 0 :(得分:5)
Bind<ISession>().ToMethod(ctx => {
var uow = (INHibernateUnitOfWork)ctx.Kernel.Get<IUnitOfWork>();
return uow.Session;
});