【问题标题】:Castle Windsor - Null constructor argumentCastle Windsor - Null 构造函数参数
【发布时间】:2008-12-11 18:26:15
【问题描述】:

如何使用 Castle Windsor 传递空构造函数参数?我认为以下方法会起作用

<parameters>
  <repository>null</repository>
  <message>null</message>
</parameters>`

【问题讨论】:

    标签: inversion-of-control castle-windsor


    【解决方案1】:

    如果您希望它们为空,则意味着它们是非必要的依赖项。通过将它们作为 ctor 参数,您提出了其他建议。如果您希望它们在对象的整个生命周期中不发生变化(只读),或者将它们作为属性公开,您应该重新设计您的类以拥有另一个只接受基本依赖项的构造函数。

    由于另一个答案中提到的原因,对于 Windsor,您无法传递空值。

    【讨论】:

      【解决方案2】:

      简单地有一个额外的不接受这些参数的公共构造函数不是更好吗,那么你就不需要在配置中注册参数了吗?

      【讨论】:

        【解决方案3】:

        这在邮件列表上讨论过一段时间,当时我查看了代码。空值被故意过滤掉(主要是因为复杂的类型解析)。

        我找不到一种简单的方法来制作特殊情况来添加它们。

        【讨论】:

        • 我认为原因实际上是构造函数参数是强制依赖项,所以 null 在那里没有意义。
        猜你喜欢
        • 1970-01-01
        • 2011-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多