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 に答える