У меня есть приложение WinForms со следующим кодом:Ninject возвращает инъекционного свойство Null
static void Main()
{
IKernel kernel = new StandardKernel(new MyModule());
TestInterface test = kernel.Get<TestInterface>();
}
Для Module.Load() событие:
Bind<TestClass>().ToSelf().InSingletonScope();
Bind<TestInterface>().To<TestClass>();
На данный момент test
в Main()
метод - это правильный объект, который я ожидаю.
В форме позже, я использую инъекции свойства:
[Inject]
TestInterface test {get;set;}
И после загрузки формы, пытаясь работать с test
, но это пустой объект.
Мысли?
Благодаря Кевин, он исправляет эту проблему, но я думаю, что я после лучшего решения. Я продолжаю читать о «плохом запахе» большого количества инъекций и получать звонки, так как это не так. Я пытаюсь применить инъекции свойств, поскольку инъекция конструктора просто мешает всякому, когда я создаю экземпляр объекта. Наличие экземпляра ядра также кажется обратным? – mattdwen
Я согласен - не передается ли экземпляр ядра почти так же плохо, как передать кучу зависимостей? –
Я не уверен, как еще можно сделать DI в ASP.NET ... есть только так много мест, которые вы можете подключить к конвейеру и ввести свои зависимости. –