Маппинг обобщённых (generic) классов с помощью Mapster

Даны два класса:

public class ResultDto<TData>
{
    public TData Data { get; set; }

    public Dictionary<string, string> Errors { get; set; }
}


public class ResultAs<TResult>
{
    public TResult? Value { get; set; }
    
    public Dictionary<string, string>? ErrorParams { get; set; }
}

Хотелось бы написать конфигурацию маппинга для обобщённых классов. Думал, что будет работать вот так:

TypeAdapterConfig<ResultAs<object>, ResultDto<object>>
           .NewConfig()
           .Map(dest => dest.Data, src => src.Value)
           .Map(dest => dest.Errors, src => src.ErrorParams);

Но так не работает.


Ответы (1 шт):

Автор решения: Дмитрий

Ответ на вопрос находится здесь - https://github.com/chaowlert/Mapster/wiki/Configuration#open-generics

Пример:

TypeAdapterConfig.GlobalSettings.ForType(typeof(ResultAs<>), typeof(ResultDto<>))
    .Map("Data", "Value")
    .Map("Errors", "ErrorParams")
    .RequireDestinationMemberSource(true);
→ Ссылка