StructureMap to Ninject转换

时间:2012-08-02 14:59:32

标签: c# ninject structuremap

我该如何转换:

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

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

1 个答案:

答案 0 :(得分:5)

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