2010-11-08 72 views
16

Bu Ana Formu ile bir WinForms uygulama var:Windows Forms uygulamasında Ninject nasıl kullanılır?

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

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

ama mainform içine ICountRepository enjekte mücadele ediyorum. Bunu nasıl yaparım ?

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

için: Belki

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

size alabilirsiniz ulaşmak için aradığınız ne gibi bir şeydir hakkında açıklayıcı düzenleme veya iki

+0

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

cevap

20

Eh ilk adımlarını geçmek için vardır daha detaylı cevap.


Son derece bu (o parlance var içinde, dönüşüm yukarıdaki Main senin Composition Root yapar @ Mark SEEMANN en Dependency Injection in .NET kitaptır etrafında desenleri ile hız kadar almak için tavsiye -. Uygulamanızın (tek) GetComposes the object graph

+1

nihayet Program.cs dosyasındaki ana yöntem içinde bunu yaptım – Attilah

+0

@Attillah: Evet, mantıklı. –

İlgili konular