Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Castle Windsor - IoC registration for open generic interfaces?

Does Castle Windsor permit registration of an open generic interface or do I need to register each possible typed instance separately?

Example - the below with types T,Z fails upon compilation unless I separately specify T, Z with strong types.

 container.Register(Component
      .For<IAdapterFactory<T,Z>>()
      .ImplementedBy<AdapterFactory<T,Z>>()
      .LifeStyle.PerWebRequest);
like image 422
goldfinger Avatar asked Sep 10 '12 02:09

goldfinger


1 Answers

It's called open generic, and yes, Windsor does support that.

 container.Register(Component
             .For(typeof(IAdapterFactory<,>))
             .ImplementedBy(typeof(AdapterFactory<,>))
             .LifestylePerWebRequest());
like image 85
Krzysztof Kozmic Avatar answered Oct 02 '22 11:10

Krzysztof Kozmic