Проблемы с конвертером пользовательских типов AutoMapperC#

Место общения программистов C#
Ответить
Anonymous
 Проблемы с конвертером пользовательских типов AutoMapper

Сообщение Anonymous »

Я пытался создать собственный преобразователь типов с помощью automapper, но не смог приступить к работе или даже скомпилировать его.
Вот мой собственный преобразователь:
public class WorkPlanToWorkingTimeListConverter : ITypeConverter
{
public IEnumerable Convert(TPWorkPlanDTO source, IEnumerable destination, ResolutionContext context)
{
if (source == null)
{
return Enumerable.Empty();
}

return (IEnumerable)source.Weeks.SelectMany(week => week.Days.SelectMany(day => day.Shifts));
}
}

Я пытаюсь подключить это следующим образом:
CreateMap()
.ConvertUsing();

Но я получаю следующую ошибку:

Тип Mapping.Converter.WorkPlanToWorkingTimeListConverter нельзя использовать в качестве параметра типа. «TTypeConverter» в универсальном типе или методе «IMappingExpressionBase.ConvertUsing()». Неявного преобразования ссылок из Mapping.Converter.WorkPlanToWorkingTimeListConverter в AutoMapper.ITypeConverter' не существует.
Я пробовал некоторые перегрузки ConvertUsing(), принимающие типы, но просто не могу их скомпилировать.
Ниже я прикрепил свой DTO и модель, которую мне нужно сопоставить:
namespace Mapping.DTO;

public class TPWorkPlanDTO
{
public class TPWorkingTimeDTO
{
public int worktime_id { get; set; }
public DateTime start_time { get; set; }
public DateTime end_time { get; set; }
}
public class TPWorkPlanDay
{
public IEnumerable Shifts { get; set; }
}
public class TPWorkPlanWeek
{
public IEnumerable Days { get; set; }
}
public IEnumerable Weeks { get; set; }
}

namespace Models;
public class WorkingTime
{
public int Id { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... -converter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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