我有一个模型,属性:
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
我该怎么做才能让它起作用?
您是否考虑过不自动映射到SelectList,而是自动映射到一个简单的Array,然后使用Get-only属性将其包装为SelectList?
这个答案描述了方法。
此外,从相同的SO问题,有ConstructedBy的想法,以及使用MapFrom
直接做到这一点的方法。