8

Forms, ama nasıl Windows Forms bu alabilirim?nasıl bağımlılıkları Windows kurucularınızdaki enjekte almak için asp.net-mvc ben denetleyicileri içine bütün bağımlılıkları enjekte Windsor Kontrolörü Fabrikası var içinde

örneğin

bu Form1 varsa, nasıl ben (bazı ppl tarafından ServiceLocator ve anti-desen olarak adlandırılır) kararlılığını kullanmalısınız, Form1 örneğini almak için gidiyorum?

public class Form1 
{ 
    private IBarService _barService; 

    public Form1(IBarService barService) 
    { 
     _barService = barService; 
    } 
} 

cevap

5

Evet, program.cs sen windsor Form1 gidermek yapmalıdır. Tasarımcıda formu görüntüleyebilmeniz için boş bir kurucu ekleyip Obsolete özniteliği ile süsleyebilirsiniz.

+0

, tasarımcı hala VS tasarımcısı uyumluluk için –

6

Oluşturucu Oluşturucu Formlar (veya diğer kullanıcı arabirimleri çerçevesindeki diğer görünümler) Visual Studio tasarımcısı varsayılan bir kurucu beklediği ve varsaydığı için genellikle sorunludur.

Her halükarda, bir Form veya başka bir görsel Kontrol, davranışsız bir Görünüm olmalıdır. Amacı, ona bağladığınız verileri göstermek. veri bağlama özelliklerinin kullanılması, genellikle bu pasif ekran biçiminde sizi kısıtlamaya yardımcı olur.

Bu, View (Form) örneğini oluşturabilen ve veri kaynağını ona bağlayabilen Denetleyici Denetleyicisine gereksiniminiz olduğu anlamına gelir.

Bu

böyle WPF gibi bir teknolojiyle yapmak çok daha kolay, ama Windows Forms ile de mümkündür. o aşırı karmaşık, ama bu size kendinizi benzer bir şey nasıl uygulanacağına ilişkin bazı fikirler vermelidir - Windows Forms ile bunun nasıl yapılacağı üzerinde ilham için, sana Composite Application Block (şimdi emekli) bakmak öneririz.

`Obsolete` yaklaşım çalışmıyor
+0

kırık, özel bir varsayılan kurucu sağlayabilir ve genel yapıcı varsayılan bir çağrı yapmak gösterir. –

+0

@Mark, Birkaç yıl önce CAB ile çalıştım - emekli olduğunu duymadım. Emekli olduğunu nereden buldun? – mreith

+1

@Eren Aygunes: İyi nokta - Bunu bilmiyordum. Ancak, cevabımı gerçekten değiştirmiyor çünkü tasarım perspektifinden, pasif Görüşler bir Kontrol kavramına daha iyi uyuyor. –

İlgili konular