允许通过工厂方法在Castle Windsor中进行可选(null)属性注入?

时间:2010-08-26 08:11:53

标签: c# castle-windsor

我已经注册了一个组件

container.Register(Component.For<XType>()
 .LifeStyle.Is(LifestyleType.Transient)
 .UsingFactoryMethod(SomeMethod));

我目前在我的ASP.NET MVC控制器上使用它来进行属性注入。但是 - 我目前的问题是SomeMethod有时会返回null。 Castle对此并不十分满意并抱怨null实例。

是否有一种简洁的方法来配置Windsor以允许此组件为空?我一直在探索文档,但还没有找到办法。

感谢。

1 个答案:

答案 0 :(得分:6)

不,没有办法通过温莎传递null。

如果组件为空,显然不能使用它,那么无论如何都是没有意义的。

如果您仅将此组件用作某个其他组件的属性,我认为将其作为DynamicParameter传递会更好。如果它为空,温莎将忽略它。