待解决的问题,谁帮忙点破下!

01.关于Castle的IOC容器配置疑惑1?
    Question:以前一直使用Spring.net的IOC容器,据说Castle更适合.NET,所以研究了一下,遇到几个问题不能解决。Castle称组件实现的接口为服务,一般情况是一个组件仅仅实现一个服务(接口),如果一个组件实现了两个服务,而这两个服务都要在应用中使用,而Castle不允许将同一个组件(实例)注册两次,所以没有注册的那个服务不会被自动侦测到。比如,ComT组件实现了接口IA和IB,而ComR组件和ComS组件分别依赖与IA和IB,我想使用同一个ComT实例为ComR和ComS提供服务,于是我这样注册:
            container.AddComponent(  " comT " typeof (IA),  typeof (ComT) );
            container.AddComponent( 
" comT " typeof (IB),  typeof (ComT) );
    运行时抛出异常指明“已经存在同名的组件实例”,如果改成这样:
            container.AddComponent(  " comT " typeof (IA),  typeof (ComT) );
            container.AddComponent( 
" comT2 " typeof (IB),  typeof (ComT) );
    如此,则会在容器中注册两个ComT实例,显然,这不是我想要的。所以有什么办法能在Castle容器中将同一个组件实例注册为两个服务?在Spring.net中是没有这样的问题存在的。
    Answer

你可能感兴趣的:(技术随笔)