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 中找到更多信息。
我有一个目标是一个列表<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 中找到更多信息。