Automapper 列表到字符串忽略奇怪的值

Automapper list to string ignore strange value

我有一个目标是一个列表<string>,一个源是一个字符串。我将我的配置设置为忽略 List<string> 字段,但我一直将 List 类型作为字符串值

    class MyClass
    {
         string MyList {get;set;}
    }

    class MyClassDto
    {
          List<string> MyList {get;set;}
    }

//My cfg is like this
    cfg.CreateMap<MyClassDto, MyClass>().ForMember(x => x.MyList, opt => opt.Ignore());

//I've mapped this way
ObjectMapper.Map(input, dest);

//and this way
var destClass = ObjectMapper.Map<MyClass>(input);

它不会抛出错误,但它使我的字符串字段在它的空列表时变成这样: System.Collections.Generic.List`1[System.String]

谁能解释一下这是为什么?

从您提供的示例来看,您使用的映射器似乎不知道您的配置。在 AutoMapper 9 中,您可以使用配置来创建映射器,例如:

var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<MyClassDto, MyClass>().ForMember(x => x.MyList, opt => opt.Ignore());
});

var mapper = config.CreateMapper();

var dest = mapper.Map<MyClass>(input);

可以在 docs 中找到更多信息。