0

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

我做错了什么?

4

1 回答 1

0

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

于 2012-07-03T10:31:54.450 回答