5

我有财产模型:

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 

我应该怎么做才能让它工作?

4

1 回答 1

3

您是否考虑过自动映射到一个简单的 Array,然后使用 Get-only 属性将其包装为 SelectList,而不是自动映射到 SelectList?

这个答案描述了这种方法。

此外,从同一个 SO 问题中,还有ConstructedBy的想法,以及一种MapFrom直接使用的方法。

于 2012-12-29T18:37:14.740 回答