Web API を作成しており、それをバージョン管理できるようにしたいと考えています。私がやりたい方法はこれです:
- クライアント アプリケーションは、呼び出し対象の API のバージョンを含む各要求と共に、カスタム HTTP ヘッダーを渡します。
IVersionRetrieverリクエストからバージョン番号を取得するためのコンポーネント(または何かと呼ばれる)が存在します。Castle Windsor は、 のインスタンスを提供する責任がありますIVersionRetriever。- サービス インターフェイスの実装をバージョン間で変更したい場合、Castle Windsor は
IVersionRetriever.ApiVersion、取得した値に応じて実装をチェックして返すように構成されています。
これはすべて簡単に思えますが、Windsor の登録 API からは、Windsor に「そうですね、が 1 のIFoo場合はが必要ですが、バージョンが 2 の場合は が必要ですIVersionRetriever.ApiVersionSuperFooSuperDuperFoo
これをどのように構成しますか?
関連する場合、すべてのコンポーネントには PerWebRequest ライフスタイルがあります。