Automapper,在同一复杂类或其同胚等价类之间克隆对象
本文关键字:之间 对象 复杂 Automapper | 更新日期: 2023-09-27 18:26:44
在这个问题中,简单类的克隆得到了回答。
我的问题是
-
同样的方法适用于具有复杂属性的类吗?或者需要映射整个类属性层次结构?
-
有没有一种简单的方法可以用AutoMapper复制两个结构完全相同(同胚)的复杂类?
是的,您可以对所有这些请求使用AutoMapper。
-
是的,同样的方法也适用于复杂类型,只要你也从那里创建地图。
-
AutoMapper会为您做到这一点。
.NETFiddle 的链接
代码:
// Creating poco instance
var personDTO = new PersonDTO
{
FirstName = "Jon",
LastName = "Smith",
Address = new AddressDTO
{
City = "New York City",
State = "NY",
Street = "12 Main ST",
ZipCode = "32211"
}
};
// Create a mapping scheme
AutoMapper.Mapper.CreateMap<AddressDTO, Address>();
AutoMapper.Mapper.CreateMap<PersonDTO, Person>();
AutoMapper.Mapper.CreateMap<AddressDTO, Address>().ReverseMap();
AutoMapper.Mapper.CreateMap<PersonDTO, Person>().ReverseMap();
// Creating the destination type
var person = AutoMapper.Mapper.Map<PersonDTO, Person>(personDTO);
Console.WriteLine("I'm {0} {1} and i'm from {2} state.", person.FirstName, person.LastName, person.Address.State);
// Output: I'm Jon Smith and i'm from NY state.