如果Windsor可以出错,我该如何告诉它';t解析属性
本文关键字:属性 何告诉 Windsor 出错 如果 | 更新日期: 2023-09-27 18:01:00
假设我有以下类
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
属性,则应该出错?我不想使用TestB
构造函数,因为我正在寻找降低构造函数膨胀的方法。
如果它是强制依赖项,则应进入构造函数阶段。否则,您将允许实例化一个无效的组件,而这与Windsor或IoC无关。
"构造函数膨胀"有时可能是代码需要重构的迹象,它可能承担了太多的责任。
编辑:如果您真的知道自己在做什么,您可以使用组件模型贡献者"手动"将依赖关系更改为可选或强制性。我认为,这应该只用于您无法控制的代码,几乎永远不要用于您自己的代码。