1

Ninjectを介してDIを使用してMVC4アプリケーションを設計するための最良の方法を見つけようとしています。

ユーザーがシステムにアクセスすると、多くのデータベースの1つを選択できるログインが表示されます。各データベースは、データベースサーバー上の個別のカタログです。ユーザーがログインしたら、データベース接続の詳細をリポジトリに挿入する必要があります。リポジトリのタイプは変更されず、接続の詳細のみが変更されます。

私はこの投稿を見つけて仕事をすることができましたが、それが私の状況に最適なアプローチであるかどうかはわかりません。人々が成功して使用した他のオプションは何ですか?

4

1 に答える 1

0

問題が解決しました。具体的なリポジトリのコンストラクターで接続文字列を渡したいので、次のNinjectWithConstructorArgumentを使用できます。

IBindingWithOrOnSyntax<T> WithConstructorArgument(string name, Func<Ninject.Activation.IContext, object> callback);

このオーバーロードでは、オブジェクトが作成されるたびにコールバックが呼び出されます。したがって、私のコードは次のようになり、MakeConnectionStringメソッドが毎回呼び出されます。

_Kernel = new StandardKernel();
_Kernel.Bind<ISomeItemRepository>().To<FakeSomeItemRepository>()
    .WithConstructorArgument("connectionString", (c) =>
        {
            MakeConnectionString();
        });
于 2012-11-27T09:11:18.237 に答える