我有财产模型:
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
我应该怎样做才能使它发挥作用?
答案 0 :(得分:3)
您是否考虑过自动化到一个简单的数组,然后使用Get-only属性将其包装为SelectList,而不是自动转移到SelectList?
This answer描述了这种方法。
此外,根据相同的SO问题,有ConstructedBy的想法,以及使用MapFrom
直接执行此操作的方法。