In this question,克隆了简单的类。
我的问题是
同样的方法是否适用于具有复杂属性的类?或者需要映射整个类属性层次结构?
使用AutoMapper复制具有完全相同结构(同胚)的两个复杂类是否容易?
答案 0 :(得分:2)
是的,您可以将AutoMapper用于所有这些请求。
是的,同样的方法也适用于复杂类型,只要你从那里创建一个地图。
AutoMapper会为您做到这一点。
<强>代码:强>
// 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.