2012-12-29 16 views
5

我有模型屬性:如果字段類型沒有默認構造函數,如何使用ValueResolver?

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

而且我有ValueResolver

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>()); 

,但它說我

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

我應該怎麼做才能使它工作?

回答

3

與其自動映射到SelectList,您是否考慮過自動映射到一個簡單的Array,然後使用Get-only屬性將它作爲SelectList包裝?

This answer描述了該方法。

此外,從同樣的問題,有ConstructedBy的想法,以及使用MapFrom直接做到這一點。

相關問題