如何在Ninject中注册FluentNHibernate?

时间:2012-07-03 09:52:24

标签: fluent-nhibernate ninject structuremap

我正在设置ASP.NET MVC4应用程序,并且我使用Ninject作为我的DI容器。

在之前的项目中,我使用 StructureMap 在我的注册表中进行了以下设置:

For<IAutoPersistenceConfiguration>()
    .Use<Sql2008AutoPersistenceConfiguration>()
    .Ctor<string>("connectionString")
    .Is("SomeConnectionStringHere");
For<ISessionSource>()
    .Singleton()
    .Use(x => new SessionSource(x.GetInstance<IAutoPersistenceConfiguration>().Build()));

现在我尝试在 Ninject 中进行类似的设置。到目前为止我的尝试是:

Bind<IAutoPersistenceConfiguration>()
    .To<Sql2008AutoPersistenceConfiguration>()
    .WithConstructorArgument("connectionString", "SomeConnectionStringHere");
Bind<ISessionSource>()
    .ToMethod(x => new SessionSource(
    x.Kernel.Get<IAutoPersistenceConfiguration>().Build())).InSingletonScope();

当我运行它时,我得到一个FluentConfigurationException:

  

创建SessionFactory时使用了无效或不完整的配置。

其他班级都是一样的; IAutoPersistenceConfiguration和Sql2008AutoPersistenceConfiguration都和以前一样。 NHibernate和FluentNHibernate的版本也和以前一样。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

原来我的Ninject设置是正确的。我得到的例外是我最初没有看到的内部异常(请参阅我自己对我的问题的评论)。一旦我看到内部异常,我所要做的就是修复连接字符串,一切正常。