我有一段代码片段在运行LinqPad(C#程序)中,已经包含了Automapper Nuget包6.1.1:
void Main()
{
Mapper.Initialize(cfg =>
{
cfg.CreateMap<Top, TopDto>().ReverseMap();
});
Mapper.AssertConfigurationIsValid();
var source = new TopDto
{
Id = 1,
Name = "Charlie",
Nicks = new List<string> { "Fernandez", "Others" }
};
var destination = Mapper.Map<Top>(source);
destination.Dump();
}
// Define other methods and classes here
public class Top
{
public Top()
{
Nicks = new List<string>();
}
public int Id { get; set; }
public string Name { get; set; }
public ICollection<string> Nicks { get; }
}
public class TopDto
{
public TopDto()
{
Nicks = new List<string>();
}
public int Id { get; set; }
public string Name { get; set; }
public ICollection<string> Nicks { get; set; }
}
正如您所看到的,我们在设置嵌套集合时遇到了问题(完全没有Setter)。理论上这应该可以正常运行,但它没有向集合中添加任何元素。
如果我们更改集合属性并添加一个公共Setter,那么一切都很好。
我如何在不添加公共Setter或Setter的情况下获得嵌套集合?
{ o.MapFrom(s=>s.Nicks); o.UseDestinationValue(); });
详情请查看 此链接。 - Lucian Bargaoanuo.UseDestinationValue();
。谢谢。你能把它写成答案以便接受吗?问候。 - ferpega