开发者

How to use Ninject in a Windows Forms application?

I have an WinForms application with this Main Form :

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

    public void IncrementCount()
    {
        countRepository.IncrementCount();
    }

but i am struggling to inject ICountRepository into the mainform. How do I do that开发者_如何学Python ?


Well the first steps are to switch from:

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

to:

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

Perhaps a clarifying edit or two about what sort of thing you're looking to achieve might get you a more detailed answer.


Highly recommended to get up to speed with the patterns around this is @Mark Seemann's Dependency Injection in .NET book (in it's parlance, the transformation above makes Main your Composition Root - the (single) Get Composes the object graph of your app.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜