城堡温莎 - 国际奥委会注册的开放式通用接口? [英] Castle Windsor - IoC registration for open generic interfaces?

查看:139
本文介绍了城堡温莎 - 国际奥委会注册的开放式通用接口?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请问一个开放的通用接口的温莎城堡许可登记或者我需要分别注册每个可能的类型化的实例呢?

示例 - 下面的与类型T,ž失败编译时,除非我分别指定T,Z,使用强类型。

  container.Register(组件
      。对于< IAdapterFactory< T,Z取代;>()
      .ImplementedBy< AdapterFactory< T,Z取代;>()
      .LifeStyle.PerWebRequest);
 

解决方案

这就是所谓的开放式泛型的,是的,温莎不支持。

  container.Register(组件
             。对于(typeof运算(IAdapterFactory<,>))
             .ImplementedBy(typeof运算(AdapterFactory<,>))
             .LifestylePerWebRequest());
 

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

解决方案

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

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

这篇关于城堡温莎 - 国际奥委会注册的开放式通用接口?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆