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 ?
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.