城堡温莎容器没有正确布线属性

时间:2010-04-20 15:21:46

标签: c# .net dependency-injection castle-windsor

我有一个类,我想在配置中通过城堡实例化。

public class MyMappings : IMappings
{
    Mapping FirstMapping { get; set; }
    Mapping SecondMapping { get; set; }
    OtherType ThirdMapping { get; set; }
    OtherType FourthMapping { get; set; }
    Mapping FifthMapping { get; set; }
    OtherType SixMapping { get; set; }
}

在我的配置中,我有以下内容:

< component id="mymappings" type="MyMappings, MyAssmebly" >
   < parameters>
       < firstMapping>${anothercomponentIDForCompomentOftypeMapping}< /firstMapping>
   < /parameters>
< /component>

我面临的问题是为相同类型的所有属性分配相同的值,完全忽略参数的名称。这个属性是可选的,我只想初始化其中一个属性的值。

谢谢,

1 个答案:

答案 0 :(得分:0)

如果您在容器中注册了Mapping或OtherType类型的组件,Windsor会将它们注入您的可选依赖项中。您在xml配置中所做的是服务覆盖,即您为特定参数选择了特定组件,但这并不意味着不会注入其他参数是适合的组件可用。

如果您想避免注入一些可选的依赖项,请参阅this question