如何在Windows窗体应用程序中使用Ninject?

我有一个WinForms应用程序与此主窗体:

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

但我正在努力将ICountRepository注入mainform。 我怎么做 ?

那么第一步是切换:

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

至:

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

也许澄清一两个关于你想要实现的事情的编辑可能会给你一个更详细的答案。


强烈推荐快速了解这方面的模式是@Mark Seemann的.NETdependency injection书(用它的说法,上面的转换使得Main你的组合根 – (单个) Get 组成应用程序的对象图 。