web-dev-qa-db-ja.com

Castle Windsor-オープンジェネリックインターフェースのIoC登録?

Castle Windsorはオープンジェネリックインターフェイスの登録を許可しますか、それとも可能な型付きインスタンスを個別に登録する必要がありますか?

例-以下のタイプT、Zの場合、強いタイプのT、Zを個別に指定しない限り、コンパイル時に失敗します。

 container.Register(Component
      .For<IAdapterFactory<T,Z>>()
      .ImplementedBy<AdapterFactory<T,Z>>()
      .LifeStyle.PerWebRequest);
35
goldfinger

それはオープンジェネリックと呼ばれ、そうです、ウィンザーはそれをサポートしています。

 container.Register(Component
             .For(typeof(IAdapterFactory<,>))
             .ImplementedBy(typeof(AdapterFactory<,>))
             .LifestylePerWebRequest());
71