2009-07-17 21 views
5

में जेनेरिक इंटरफेस कैसे पंजीकृत करें I संरचित मानचित्र में जेनेरिक इंटरफ़ेस के सभी उदाहरण कैसे पंजीकृत करें?स्ट्रक्चर मैप

मुझे पता है कि एक कोई भी सामान्य इंटरफ़ेस के लिए यह करने के लिए:

internal class MVCDemoRegistry : Registry 
    { 
     public MVCDemoRegistry() 
     { 
      Scan(x => 
      { 
       x.Assembly("MVCDemo"); 
       x.Assembly("MVCDemo.Infrastructure"); 
       x.Assembly("MVCDemo.Services"); 

       x.AddAllTypesOf<ISupplyView>(); 
      }); 
     } 
    } 

उत्तर

10

मैं की तरह

// in IToaster.cs 
public interface IToaster<T> {} 

// in your StructureMap registry 
Scan(x => 
{ 
    x.Assembly("MVCDemo"); 
    x.Assembly("MVCDemo.Infrastructure"); 
    x.Assembly("MVCDemo.Services"); 

    x.AddAllTypesOf(typeof(IToaster<>)) 
}); 

कुंजी यहाँ है कि इस दृष्टिकोण के गैर सामान्य अधिभार का उपयोग करता है कुछ के साथ जाना होगा AddAllTypesOf()। अन्यथा यह वास्तव में एक चिपचिपा विजेट बन जाता है।

इस अतः इन चिंताओं के चारों ओर एक अच्छी चर्चा के लिए थ्रेड देखें: जब तक कि वहाँ अपने दृष्टिकोण मैं याद कर रहा हूँ के बारे में कुछ StructureMap Auto registration for generic types using Scan

इस चाल करना चाहिए - यदि ऐसा है तो अद्यतन करने के लिए स्वतंत्र लग रहा है।

संबंधित मुद्दे