public static void Main()
var mapper = new Mapper(new MapperConfiguration(
cfg.AddProfile<ModelMapperProfile>();
mapper.ConfigurationProvider.AssertConfigurationIsValid();
var model = new Model(42, "Name");
var dto = mapper.Map<ModelDto>(model);
public class ModelMapperProfile : Profile
public ModelMapperProfile()
var defaultCode = Guid.NewGuid().ToByteArray();
CreateMap<Model, ModelDto>()
.ForCtorParam("id", cfg => cfg.MapFrom(src => src.Id))
.ForCtorParam("name", cfg => cfg.MapFrom(src => src.Name))
.ForCtorParam("type", cfg => cfg.MapFrom(x => 1))
.ForCtorParam("code", cfg => cfg.MapFrom<byte[]>(x => defaultCode))
.ForCtorParam("linkId", cfg => cfg.MapFrom<byte[]?>(_ => default))
.ForMember(dst => dst.Code, opt => opt.Ignore())
.ForMember(dst => dst.LinkId, opt => opt.Ignore());
public ModelDto(int id, string name, int type, byte[] code, byte[]? linkId)
public string Name { get; }
public byte[] Code { get; }
public byte[]? LinkId { get; }
public Model(int id, string name)
public string Name { get; }