我正在设置一个 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 的版本也和以前一样。
我做错了什么?