J'ai une application WinForms avec le code suivant:ninject retours d'injection de propriété Null
static void Main()
{
IKernel kernel = new StandardKernel(new MyModule());
TestInterface test = kernel.Get<TestInterface>();
}
Pour l'événement Module.Load():
Bind<TestClass>().ToSelf().InSingletonScope();
Bind<TestInterface>().To<TestClass>();
À ce stade test
dans le Main()
méthode est l'objet que j'attends.
Dans une forme plus tard, je suis en utilisant une injection de propriété:
[Inject]
TestInterface test {get;set;}
Et une fois que le formulaire est chargé, en essayant de travailler avec test
, mais il est un objet nul.
Pensées?
Merci Kevin, il résout le problème, mais je pense que je suis après une meilleure solution. Je continue de lire sur la "mauvaise odeur" de beaucoup d'injecter et d'obtenir des appels, car ce n'est pas vrai DI. J'essaie l'injection de propriété, car l'injection du constructeur semble juste gêner chaque fois que j'instancie un objet. Avoir une instance du noyau semble aussi à l'envers? – mattdwen
Je suis d'accord - ne pas passer une instance du noyau presque aussi mauvais que de passer un tas de dépendances autour? –
Je ne sais pas comment DI pourrait être réalisé dans ASP.NET ... il y a tellement d'endroits où vous pouvez vous connecter au pipeline et injecter vos dépendances. –