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