自动映射,克隆相同复杂类或其同胚等效类之间的对象

时间:2015-12-15 01:22:04

标签: c# clone automapper

In this question,克隆了简单的类。

我的问题是

  1. 同样的方法是否适用于具有复杂属性的类?或者需要映射整个类属性层次结构?

  2. 使用AutoMapper复制具有完全相同结构(同胚)的两个复杂类是否容易?

1 个答案:

答案 0 :(得分:2)

是的,您可以将AutoMapper用于所有这些请求。

  1. 是的,同样的方法也适用于复杂类型,只要你从那里创建一个地图。

  2. AutoMapper会为您做到这一点。

  3. .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.