2012-12-29 13 views
5

मैं संपत्ति के साथ मॉडल है:यदि फ़ील्ड प्रकार में डिफॉल्ट कन्स्ट्रक्टर नहीं है तो ValueResolver का उपयोग कैसे करें?

public class MyModel{ 
     public SelectList PropertyTypeList { get; set; } 
} 

और मैं

public class MyPropertyValueResolver : ValueResolver<ProductProperty, SelectList> 
{ 
    protected override SelectList ResolveCore(ProductProperty source) 
    { 
     myList = .......; 
     return new SelectList(myList, "Value", "Text"); 
    } 
} 

तब मैं मानचित्रण कॉन्फ़िगर

Mapper.CreateMap<Source, Destination>() 
      .ForMember(s => s.PropertyTypeList, opt => opt.ResolveUsing<MyPropertyValueResolver>()); 

ValueResolver

है लेकिन यह कहना है मुझे उस

Type 'System.Web.Mvc.SelectList' does not have a default constructor 

इसे काम करने के लिए मुझे क्या करना चाहिए?

उत्तर

3

किसी चयनसूची को स्वैप करने की बजाय, क्या आपने एक साधारण ऐरे को ऑटोमैपिंग माना है, और उसके बाद एक चयन सूची के रूप में इसे लपेटने के लिए केवल एक ही प्राप्त संपत्ति का उपयोग किया है?

This answer दृष्टिकोण का वर्णन करता है।

इसके अलावा, एक ही SO प्रश्न से, ConstructedBy विचार है, साथ ही यह सीधे करने के लिए MapFrom का उपयोग करने का एक तरीका है।

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

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