38

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

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

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

1 に答える 1

76

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

 container.Register(Component
             .For(typeof(IAdapterFactory<,>))
             .ImplementedBy(typeof(AdapterFactory<,>))
             .LifestylePerWebRequest());
于 2012-09-10T02:50:42.260 に答える