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