Comment utiliser Ninject dans une application Windows Forms?

J’ai une application WinForms avec ce formulaire principal:

ICountRepository countRepository; public MainForm(ICountRepository countRepository) { this.countRepository = countRepository; } public void IncrementCount() { countRepository.IncrementCount(); } 

mais j’ai du mal à injecter ICountRepository dans le mainform. Comment je fais ça ?

Eh bien, les premières étapes consistent à passer de:

 var form = new MainForm(); Application.Run(form); 

à:

 var kernel = new StandardKernel( new ModuleRegisteringICountRepository()); var form = kernel.Get(); Application.Run(form); 

Peut-être qu’une clarification ou deux clarifiant le type de chose que vous cherchez à obtenir pourraient vous apporter une réponse plus détaillée.


Il est vivement recommandé de se familiariser avec les modèles existants. Il s’agit de Dependency Injection in .NET de @Mark Seemann (dans son jargon, la transformation ci-dessus fait de Main votre racine de composition – la (unique). Obtient le graphe d’objects de votre application.