У меня есть простой сервис win, который периодически выполняет несколько задач. Как передать ядро Ninject всем классам задач?Ссылка на нуль ядра в службе win
Это хорошая идея создать статическую переменную базового класса задач и инициализировать ее при запуске службы?
, но вам не нужно само ядро для ввода ядра. Как вы получите это в этом случае? Это то, что я сейчас не могу понять. – mamu
Да, это так. Однако то, что вы пытаетесь сделать, если хотите, создает ядро в некотором «объектном корне», что обычно является не всегда точкой входа в код. В случае службы Windows реакция на OnStart может быть лучшей логической точкой входа может быть такой же высокой, как и в главной() точке входа в процесс. В этот момент ядро может быть создано и вручную введено в службу, которое затем может передать его по цепочке зависимостей. –
Я бы добавил, однако, что если ядро передается, это означает, что некоторый класс где-то будет новичком, но будет использовать ядро для разрешения этих зависимостей объектов. Если это сценарий, альтернативный подход заключается в использовании библиотеки CommonServiceLocator (которая фактически содержит статическую ссылку на ядро с помощью класса адаптера.) Преимущество такого подхода заключается не в том, что целая куча ваших классов принимает прямую зависимость на ядре Ninject. –