Mapperly - 소스 생성기를 이용한 개체 매핑 라이브러리

MapperlyAutoMapper와 유사한 동작을 하는 개체 매핑 라이브러리 입니다. 다른 점은 소스 생성기를 이용해서 매핑을 런타임이 아닌 컴파일 타임에 생성한다는 점입니다.

설치

dotnet add package Riok.Mapperly

매핑 만들기

// Mapper declaration
[Mapper]
public partial class CarMapper
{
    public partial CarDto CarToCarDto(Car car);
}

// Mapper usage
var mapper = new CarMapper();
var car = new Car { NumberOfSeats = 10, ... };
var dto = mapper.CarToCarDto(car);
dto.NumberOfSeats.Should().Be(10);

7개의 좋아요

팀내에서 mapper 관련해서 알아보고 있는데 Mapperly를 추천하는 영상이 있어 공유드립니다!

간단히 정리하면 리플렉션이나 익스프레션을 사용하지 않고 직접 매핑하는 코드를 생성하고 따로 복잡한 configuration 과정이 없어 빠르고 편하다는 설명입니다. 궁금하신 분들은 직접 영상을 보시면 도움 되실 것 같습니다!

4개의 좋아요

와 이걸 왜 이제 봤을까요…

그런데 소스 생성기를 사용하는데 지금 nuget을 보니 최소 의존성이 .NET Standard 2.0이군요. 어떻게된거지…

제가 요즘 .NET Framework 4.8에서 개발하다보니 못쓸줄알고 찾아봤는데 쓸 수 있는 거 였군요.

4개의 좋아요

좀 알아보니 아래와 같은 이유로 .NET Standard 2.0를 사용해야 한다고 하네요

컴파일러는 .NET Framework와 .NET Core 모두에서 실행되어야 하므로 모든 생성기는 .NET Standard 2.0을 대상으로 해야 합니다.

2개의 좋아요