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