温莎城堡 - Null构造函数参数

时间:2008-12-11 18:26:16

标签: inversion-of-control castle-windsor

如何使用Castle Windsor传递null构造函数参数?我认为以下内容可行

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

3 个答案:

答案 0 :(得分:5)

如果您希望它们为null,则表示它们是非必要的依赖项。通过将它们作为ctor参数,你建议不然。你应该重新设计你的类,使另一个构造函数只接受必要的依赖,如果你希望它们不会在对象的整个生命周期中发生变化(只读),或者将它们作为属性公开。

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

答案 1 :(得分:1)

仅仅有一个不带这些参数的额外公共构造函数不是更好吗,那么你不需要在配置中注册参数吗?

答案 2 :(得分:1)

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

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