如果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知道TestATestB的依赖项,因此如果它不能解析Testing属性,则应该出错?我不想使用TestB构造函数,因为我正在寻找降低构造函数膨胀的方法。

如果Windsor可以出错,我该如何告诉它';t解析属性

如果它是强制依赖项,则应进入构造函数阶段。否则,您将允许实例化一个无效的组件,而这与Windsor或IoC无关。

"构造函数膨胀"有时可能是代码需要重构的迹象,它可能承担了太多的责任。

编辑:如果您真的知道自己在做什么,您可以使用组件模型贡献者"手动"将依赖关系更改为可选或强制性。我认为,这应该只用于您无法控制的代码,几乎永远不要用于您自己的代码。