Настройка именованных аргументов: ввод значения по имени введенной строковой переменной

#structuremap

#structuremap

Вопрос:

Передача именованных аргументов объясняет, как вы можете настроить ввод строкового значения.

     container.With("color").EqualTo("Blue").GetInstance<IWidget>()
 

Позволяет мне указать значение color to be Blue для любого класса, но оно действует только для следующего GetInstance() вызова. Конфигурация не сохраняется container .

Есть ли способ настроить контейнер на использование определенного значения по имени вводимой строковой переменной? У меня есть несколько классов, в которые я хочу ввести определенное значение, если оно есть string color в его конструкторе.

Ответ №1:

Я не мог понять, как это сделать, но полагаться на имя переменной в любом случае не кажется хорошей практикой, и решил вообще не использовать эту функцию. Более правильным способом был бы шаблон Options, который также позволяет мне описать значение по умолчанию, если в любом другом контейнере класса не указаны значения.