同じインターフェースを実装するコンポーネントがいくつかあり、どのコンポーネントを自分の に注入するかを選択したいと考えていRepository
ます。
Component.For<IRepository>().ImplementedBy<Repository>().<whatShouldGoHere>()
これで動作していると思っていましたが、文字列などの静的な依存関係がDependsOn
あることがわかりました。前進する唯一の方法ですかDependsOn
?IHandlerSelector
コンポーネントの登録とインラインで宣言したいと思います。たぶんファクトリーメソッド?推奨事項はありますか?
サンプル コンストラクターの編集
public PersitentRepository(Func<ISession,string> sessionFactory)
調べてみると、デリゲートは のアーティファクトであることがわかりましたTypedFactoryFacility
。いくつかの変更があったようで、現在はタイプによってのみ解決されます。Castle の古いバージョンでは、文字列引数を使用してコンポーネントを名前で選択していました。