У меня есть класс с двумя ctors. Одно без параметров и один с параметрами.
Единица по умолчанию проявит жадный подход и пойдет для последнего ctor.
Как я могу определить, какой ctor использовать (я хочу к без параметров), не добавляя зависимость от Единицы в моих классах? Я думаю, что возможно сделать это в моем контейнерном создании, но я не знаю как.
В настоящее время моя регистрационная запись похожа на это:
container.RegisterType<IConfigurationService, SqlConfigurationService>()
ОБНОВЛЕНИЕ
Я стараюсь не программировать в XML (файл конфигурации) как можно больше.
ДОПОЛНИТЕЛЬНЫЙ
То, как был бы, регистрируя конструктора в одном параметре (который в он - поворот, должно быть введено)?
Скажите, что ILoggerService уже регистрируется, и я хотел бы использовать конструктора
public SqlConfigurationService(ILoggerService logger){}
У меня сейчас нет Unity рядом, но насколько я помню, вы можете сделать что-то вроде этого:
container.RegisterType<IConfigurationService, SqlConfigurationService>(
new InjectionConstructor())
Я думаю, что вы также можете пройти в InjectionConstructor (включая ResolvedParameter
s для параметров) при регистрации. Вы пробовали это?
Вы можете применить атрибут InjectionConstructor к нужному конструктору. Однако, это может привести к тому, что некоторая контейнерная конфигурация будет перенесена из центрального местоположения.
.