Castle Windsor: установка значения параметра в пустую строку - PullRequest
4 голосов
/ 31 марта 2010

Как я могу позволить одному из моих строковых параметров быть пустой строкой?

Я получаю эту ошибку, когда пытаюсь либо ничего , либо один пробел (имена изменены):

Не удалось разрешить необязательную зависимость для «test.User» (MyNamespace.MyObject). Параметр 'userName', тип 'System.String'

Ответы [ 3 ]

8 голосов
/ 31 марта 2010

Оказывается, гораздо проще и, вероятно, больше правильно добавить конструктор, который не принимает параметры, которые вы хотите оставить пустыми.

2 голосов
/ 31 марта 2010
container.Register(
   Component.For<Foo>()
      .DependsOn(new
      {
         someString = string.Empty
      }));

но прежде всего, почему вы хотите установить эту зависимость в пустую строку? Мне все равно, что взломать.

1 голос
/ 07 июля 2010

Что, если уже есть значение по умолчанию, которое является нулем, или какая-то другая непустая строка? Одним из решений является создание компонента:

<component id="emptyString" type="System.String, mscorlib" />

и затем используйте его в вашем узле параметров:

<parameters> <someStringParameter>${emptyString}</someStringParameter> </parameters>

Но похоже, что должен быть более простой способ.

...