2010-11-08 9 views
16

Ich habe eine WinForms-Anwendung mit diesem Hauptformular:Wie wird Ninject in einer Windows Forms-Anwendung verwendet?

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

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

aber ich habe Schwierigkeiten ICountRepository in die Hauptform zu injizieren. Wie mache ich das ?

+0

verwandt: http://stackoverflow.com/questions/19937187/does-di-make-sense-in-a-desktop-app –

Antwort

20

Nun, die ersten Schritte sind von wechseln:

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

zu:

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

Vielleicht eine Klärung bearbeiten oder zwei über welche Art von Sache, die Sie suchen vielleicht bekommen Sie ein erreichen ausführlichere Antwort.


Sehr empfehlenswert aufstehen mit den Mustern zu beschleunigen, um dieses Dependency Injection in .NET Buch ist @ Mark Seemann (darin parlance ist, über die Transformation Main Ihre Composition Root macht -. Die (einzige) GetComposes the object graph Ihre App

+1

Ich tat dies innerhalb der Hauptmethode in der Program.cs-Datei schließlich. – Attilah

+0

@Attilly: Ja, macht Sinn –

Verwandte Themen