Castle Windsor - 开放通用接口的IoC注册?

时间:2012-09-10 02:24:03

标签: c# .net inversion-of-control castle-windsor ioc-container

Castle Windsor是否允许注册开放的通用接口,还是需要单独注册每个可能的类型实例?

示例 - 下面的类型为T,Z在编译时失败,除非我单独指定强类型的T,Z。

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

1 个答案:

答案 0 :(得分:69)

它被称为开放通用,是的,Windsor确实支持它。

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