С Ninject, как вы настраиваете ядро, чтобы я мог определить, какие значения конструктора передаются в экземпляр объекта?
У меня в модуле настроено следующее:
Bind<IService1>()
.To<Service1Impl>()
.InSingletonScope()
.Named("LIVE");
Bind<IService2>()
.To<Service2Impl>()
.InSingletonScope()
.Named("LIVE")
.WithConstructorArgument(
"service1",
Kernel.Get<IService1>("LIVE"));
Service2Impl принимает параметр конструктора IService1, но я хочу, чтобы это произошло из контейнера. Я также хочу иметь именованные привязки, поскольку мой код будет ориентироваться на разные версии во время выполнения.
Это похоже на работу, но это правильный способ добиться того, что я хочу сделать? Должен ли я достигать без использования названных привязок и подключения различных конфигурационных модулей в ядро?
ИЗМЕНИТЬ
Теперь я использовал метод ToMethod(), чтобы указать делегата для вызова по запросу определенного типа. Это выглядит немного лучше, поскольку я получаю предупреждения о компиляции, если конфигурация конструктора неверна, а не знать имя параметра, который я передаю первым.
Спасибо