我有一个类,我想在配置中通过城堡实例化。
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>
我面临的问题是为相同类型的所有属性分配相同的值,完全忽略参数的名称。这个属性是可选的,我只想初始化其中一个属性的值。
谢谢,
答案 0 :(得分:0)
如果您在容器中注册了Mapping或OtherType类型的组件,Windsor会将它们注入您的可选依赖项中。您在xml配置中所做的是服务覆盖,即您为特定参数选择了特定组件,但这并不意味着不会注入其他参数是适合的组件可用。
如果您想避免注入一些可选的依赖项,请参阅this question。