StructureMap to Ninject转换

Tyl*_*ght 2 c# structuremap ninject

我怎么能转换这个:

For<ISession>().Use(ctx => {
    var uow = (INHibernateUnitOfWork)ctx.GetInstance<IUnitOfWork>();
    return uow.Session;
});
Run Code Online (Sandbox Code Playgroud)

对Ninject?

我能够转换这个:

For<ISessionSource>().Singleton().Use<NHibernateSessionSource>();
Run Code Online (Sandbox Code Playgroud)

Bind<ISessionSource>()
    .To<NHibernateSessionSource>()
    .InSingletonScope()
Run Code Online (Sandbox Code Playgroud)

我想我也可以转换这个:

For<IUnitOfWork>().HybridHttpOrThreadLocalScoped().Use<NHibernateUnitOfWork>();
Run Code Online (Sandbox Code Playgroud)

Bind<IUnitOfWork>().To<NHibernateUnitOfWork>().InThreadScope();
Run Code Online (Sandbox Code Playgroud)

我知道这些并非都是一对一的,但我可以得到一些帮助吗?

Rem*_*oor 5

Bind<ISession>().ToMethod(ctx => {
    var uow = (INHibernateUnitOfWork)ctx.Kernel.Get<IUnitOfWork>();
    return uow.Session;
});
Run Code Online (Sandbox Code Playgroud)