【发布时间】:2008-12-11 18:26:15
【问题描述】:
如何使用 Castle Windsor 传递空构造函数参数?我认为以下方法会起作用
<parameters>
<repository>null</repository>
<message>null</message>
</parameters>`
【问题讨论】:
标签: inversion-of-control castle-windsor
如何使用 Castle Windsor 传递空构造函数参数?我认为以下方法会起作用
<parameters>
<repository>null</repository>
<message>null</message>
</parameters>`
【问题讨论】:
标签: inversion-of-control castle-windsor
如果您希望它们为空,则意味着它们是非必要的依赖项。通过将它们作为 ctor 参数,您提出了其他建议。如果您希望它们在对象的整个生命周期中不发生变化(只读),或者将它们作为属性公开,您应该重新设计您的类以拥有另一个只接受基本依赖项的构造函数。
由于另一个答案中提到的原因,对于 Windsor,您无法传递空值。
【讨论】:
简单地有一个额外的不接受这些参数的公共构造函数不是更好吗,那么你就不需要在配置中注册参数了吗?
【讨论】:
这在邮件列表上讨论过一段时间,当时我查看了代码。空值被故意过滤掉(主要是因为复杂的类型解析)。
我找不到一种简单的方法来制作特殊情况来添加它们。
【讨论】: