我正在设置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的版本也和以前一样。
我做错了什么?
答案 0 :(得分:0)
原来我的Ninject设置是正确的。我得到的例外是我最初没有看到的内部异常(请参阅我自己对我的问题的评论)。一旦我看到内部异常,我所要做的就是修复连接字符串,一切正常。