私はプロジェクトでIinCコンテナとしてNinjectを使用しています。私は次のクラスを持っています:コンストラクタ文字列引数のNinjectへのバインドに基づくバインド
public class SomeRepository:ISomeRepository
{
public SomeRepository(string someDatabaseConnectionString)
{
// some code here..
}
}
私のアプリケーション設定ファイルには、「someDatabase」という名前の接続文字列があります。デフォルトでは1は、コンストラクタには、この接続文字列を注入するために、以下の設定を追加する必要があります
kernel.Bind<ISomeRepository>()
.To<SomeRepository>()
.WithConstructorArgument("someDatabaseConnectionString", connString);
しかし、私は、従来のような文字列の結合ベースを実装したいです。名前が "ConnectionString"で終わる文字列型のすべてのコンストラクタパラメータの値は、アプリケーションのconnectionStrings構成セクションから取得し、自動的に挿入する必要があります。 appSettingsセクションにも同様の規約を実装したいと思います。このアプローチは、Mark Seemanの"Primitive Dependencies"の記事(「プリミティブの規則」セクション)で詳しく説明されています。例ではCastle Windsorコンテナを使用しました。
Ninjectを使用してこのような慣習を実装することは可能ですか?これを行う最も良い方法は何ですか?私はすでにninject.extensions.conventionsを試しましたが、そのような機能はないようですね。
ConfigurationManager.AppSettings ["someDatabaseConnectionString"]を使用できますか? – Ben
現在、私はConfigurationManager.AppSettings ["someDatabaseConnectionString"]を使用しています。しかし、接続文字列に依存するクラスが20以上あるとします。私はこれらのクラスのそれぞれについて特定のルールを書こうと思っていません、私は自動的に依存関係を注入したいです。 –