Static mappers and extension methods
Mapperly supports static mappers and extension methods:
[Mapper]
public static partial class CarMapper
{
public static partial CarDto ToCarDto(this Car car);
private static int TimeSpanToHours(TimeSpan t) => t.Hours;
}
Static methods in instantiable class
Static methods are supported in non-static mapper classes. This supports the static interface use case. When a static mapping method is present, to simplify mapping method resolution and reduce confusion about which mapping method Mapperly uses, all methods must be static.
public interface ICarMapper
{
static abstract CarDto ToDto(Car car);
}
[Mapper]
public partial class CarMapper : ICarMapper
{
public static partial CarDto ToDto(Car car);
}