2012-08-02 50 views
2

我如何轉換這一點:StructureMap到Ninject轉換

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(); 

我知道這些並不都是一對一的,但我可以得到一些幫助嗎?

回答

5
Bind<ISession>().ToMethod(ctx => { 
    var uow = (INHibernateUnitOfWork)ctx.Kernel.Get<IUnitOfWork>(); 
    return uow.Session; 
}); 
相關問題