Установка конструктора без параметров как инжекционный конструктор в контейнерном создании

У меня есть класс с двумя ctors. Одно без параметров и один с параметрами.
Единица по умолчанию проявит жадный подход и пойдет для последнего ctor.

Как я могу определить, какой ctor использовать (я хочу к без параметров), не добавляя зависимость от Единицы в моих классах? Я думаю, что возможно сделать это в моем контейнерном создании, но я не знаю как.

В настоящее время моя регистрационная запись похожа на это:

container.RegisterType<IConfigurationService, SqlConfigurationService>()

ОБНОВЛЕНИЕ
Я стараюсь не программировать в XML (файл конфигурации) как можно больше.

ДОПОЛНИТЕЛЬНЫЙ
То, как был бы, регистрируя конструктора в одном параметре (который в он - поворот, должно быть введено)?
Скажите, что ILoggerService уже регистрируется, и я хотел бы использовать конструктора

public SqlConfigurationService(ILoggerService logger){}
9
задан Boris Callens 22 December 2009 в 12:22
поделиться

3 ответа

У меня сейчас нет Unity рядом, но насколько я помню, вы можете сделать что-то вроде этого:

container.RegisterType<IConfigurationService, SqlConfigurationService>(
    new InjectionConstructor())
19
ответ дан 4 December 2019 в 11:05
поделиться

Я думаю, что вы также можете пройти в InjectionConstructor (включая ResolvedParameters для параметров) при регистрации. Вы пробовали это?

0
ответ дан 4 December 2019 в 11:05
поделиться

Вы можете применить атрибут InjectionConstructor к нужному конструктору. Однако, это может привести к тому, что некоторая контейнерная конфигурация будет перенесена из центрального местоположения.

.
0
ответ дан 4 December 2019 в 11:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: