如果字段类型没有默认构造函数,如何使用ValueResolver?

Rom*_*ats 5 .net c# automapper

我有财产模型:

public class MyModel{
       public SelectList PropertyTypeList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有ValueResolver

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

然后我配置映射

    Mapper.CreateMap<Source, Destination>()
          .ForMember(s => s.PropertyTypeList, opt => opt.ResolveUsing<MyPropertyValueResolver>());
Run Code Online (Sandbox Code Playgroud)

但它告诉了我

Type 'System.Web.Mvc.SelectList' does not have a default constructor 
Run Code Online (Sandbox Code Playgroud)

我应该做些什么才能让它发挥作用?

Hol*_*olf 3

您是否考虑过自动映射到简单的数组,然后使用仅获取属性将其包装为 SelectList,而不是自动映射到 SelectList?

这个答案描述了该方法。

另外,在同一个问题中,有ConstructedBy 的想法,以及一种MapFrom直接执行此操作的方法。