说我有以下课程
public class TestA
{
public string Blah { get; set; }
}
public class TestB
{
public TestA Testing { get; set; }
}
所以说我希望Windsor给我一个TestB
的实例,但我也希望它使用属性注入来实例化TestB.Testing
属性。这部分很简单,但我需要一种方法来了解TestA
的Windsor注册是否已被删除。
有没有办法标记Testing
属性,以便Windsor知道TestA
是TestB
的依赖关系,因此如果无法解析Testing
则会出错。 1}}属性?我不想使用TestB
构造函数,因为我正在寻找降低构造函数膨胀的方法。
答案 0 :(得分:4)
如果它是强制依赖,它应该进入构造函数期间。否则,您将允许实例化无效组件,这与Windsor或IoC无关。
“构造函数膨胀”有时可能是代码需要重构的标志,它可能已经获得了太多的责任。
编辑:如果您真的知道您正在做什么,您可以使用component model contributor“手动”将依赖关系更改为可选或必需。我认为这应该只用于你无法控制的代码,几乎从不用于你自己的代码。