C# – Castle Windsor – IoC registration for open generic interfaces

ccastle-windsorinversion-of-controlioc-containernet

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);

Best Answer

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

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