Mapster: Использует ли Adapt<T>() пользовательские сопоставления, определенные в IRegister, или мне нужно использовать IC#

Место общения программистов C#
Anonymous
Mapster: Использует ли Adapt<T>() пользовательские сопоставления, определенные в IRegister, или мне нужно использовать I

Сообщение Anonymous »

Я перехожу с AutoMapper на Mapster и столкнулся с поведением, которое меня сбивает с толку.
В моем сервисе следующие две реализации возвращают один и тот же результат:

Код: Выделить всё

public TestRepository(
Context context,
ILogger logger)
{
_context = context;
_logger = logger;
}

public async Task GetAsync(int id)
{
Result? res = await _context.Result
.FirstOrDefaultAsync();

return res.Adapt();
}
и

Код: Выделить всё

public TestRepository(
Context context,
IMapper mapper,
ILogger logger)
{
_context = context;
_mapper = mapper;
_logger = logger;
}

public async Task GetAsync(int id)
{
Result? res = await _context.Result
.FirstOrDefaultAsync();

return _mapper.Map(res);
}
Мой вопрос:
Если я определяю пользовательские сопоставления с использованием пользовательского IRegister, необходимо ли мне использовать IMapper для применения этих сопоставлений, или вызов Adapt() также использует сопоставления, определенные в зарегистрированном IRegister?
Другими словами, Adapt() автоматически использует глобальная конфигурация Mapster (включая пользовательские регистры), или такое поведение ограничено IMapper?

Вернуться в «C#»