Разрешить ввод необязательного (нулевого) свойства в Castle Windsor с помощью фабричного метода? - PullRequest
8 голосов
/ 26 августа 2010

Я зарегистрировал компонент

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

, и в настоящее время я использую это для внедрения свойств в мои контроллеры ASP.NET MVC. Однако моя текущая проблема заключается в том, что SomeMethod может иногда возвращать ноль. Касл не слишком доволен этим и жалуется на пустой случай.

Есть ли удобный способ настроить Windsor, чтобы этот компонент был нулевым? Я изучал документы, но не нашел способа сделать это.

Спасибо.

1 Ответ

6 голосов
/ 26 августа 2010

Нет, через Windsor невозможно передать значение null.

Если компонент имеет значение null, его, очевидно, нельзя использовать, поэтому было бы бессмысленно, если бы это было возможно в любом случае.1004 * Если вы используете этот компонент только как свойство какого-либо другого компонента, я думаю, что было бы лучше просто передать его как DynamicParameter.Виндзор тогда просто проигнорирует это, если это нуль.

...