Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Allow optional (null) property injection in Castle Windsor via factory method?

I've registered a component

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

and am currently using this for property injection on my ASP.NET MVC controllers. However - my current problem is that SomeMethod can return null sometimes. Castle is not all too happy about this and complains about a null instance.

Is there a neat way to configure Windsor to allow this component to be null? I've been exploring the docs but haven't found a way to do it.

Thanks.

like image 599
RasmusKL Avatar asked Aug 26 '10 08:08

RasmusKL


1 Answers

No, there's no way to pass null via Windsor.

If the component is null, than it obviously can not be used, so it would be pointless if that would be possible anyway.

If you're using this component only as a property on some other component, I think it would be better to just pass it as DynamicParameter. Windsor will then just ignore it if it's null.

like image 73
Krzysztof Kozmic Avatar answered Nov 09 '22 01:11

Krzysztof Kozmic