설치 및 첫 번째 예제

1、NuGet 설치 단계

  1. 콘솔 프로젝트를 새로 만듭니다(다른 프로젝트 유형도 가능하나, 여기서는 설명을 위해 콘솔 사용).
  2. NuGet 패키지 관리자에서 AutoMapper(작성자: Jimmy Bogard)를 검색합니다.
  3. 설치 버튼을 클릭합니다. 프로젝트의 .NET 프레임워크 버전에 맞는 패키지 버전을 선택해야 하며, 버전이 일치하지 않으면 설치에 실패합니다.

패키지 관리자 콘솔 명령어

Install‑Package AutoMapper

2、엔터티 클래스 생성

class Person
{
    public int Age { set; get; }
    public string Name { set; get; }
    public decimal Salary { set; get; }
    public bool Sex { set; get; }
    public DateTime Birthday { set; get; }
}

class People
{
    public int Age { set; get; }
    public string Name { set; get; }
    public decimal Salary { set; get; }
    public bool Sex { set; get; }
    public DateTime Birthday { set; get; }
}Code language: JavaScript (javascript)

3、예제

class Program
{
    static void Main(string[] args)
    {
        // ① 매핑 설정 초기화: Person → People 매핑 관계 생성
        Mapper.Initialize(m => m.CreateMap<Person, People>());

        // ② 소스 객체(Person) 인스턴스 생성
        Person p = new Person()
        {
            Age = 12,
            Name = "Tom",
            Birthday = DateTime.Now,
            Sex = true,
            Salary = 10000
        };

        // 대상 객체는 null이면 안 되므로 미리 인스턴스화해야 합니다.
        People peo = new People();

        // ③ 매핑 실행: 소스 객체 p의 값을 peo에 복사
        Mapper.Map(p, peo);

        // ④ 매핑 결과 확인
        Console.WriteLine(peo.Name);
        Console.ReadKey();
    }
}Code language: JavaScript (javascript)

핵심 요약

  1. Mapper.Initialize: 전역 매핑 규칙을 등록합니다. 프로그램 시작 시 한 번만 실행하고, 반복문 안에서 호출하지 마세요.
  2. CreateMap<소스타입, 대상타입>(): 두 클래스 간의 매핑을 선언합니다.
  3. Mapper.Map(소스객체, 대상객체): 대상 객체는 반드시 인스턴스화되어 있어야 하며 null을 전달하면 오류가 발생합니다.
  4. 규칙: 속성 이름과 타입이 같으면 자동으로 복사되며 별도 설정이 필요 없습니다.

버전 참고: AutoMapper 10 이상부터는 정적 Mapper.Initialize / Mapper.Map 사용이 권장되지 않으며, DI를 통해 IMapper를 주입받아 사용합니다. 위 코드는 구버전 학습용입니다.

직접 할당 방식과의 비교

  • 직접 할당: peo.Name=p.Name; peo.Age=p.Age;…… 필드가 많을수록 반복 코드가 늘어납니다.
  • AutoMapper: 매핑 관계만 선언하면 동일한 이름의 속성을 자동으로 복사합니다.

설치 및 첫 번째 예제

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다