public class ClinicController
{
private List<Employee> Employees;
private List<Patient> Patients;
private Mapper _objectMapper;
public ClinicController()
{
Employees = new List<Employee>();
Patients = new List<Patient>();
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Doctor, DoctorDto>().ReverseMap();
//cfg.CreateMap<Employee, Doctor>();
//cfg.CreateMap<DoctorDto, Doctor>();
//cfg.CreateMap<Employee, EmployeeDto>();
//cfg.CreateMap<Patient, DoctorDto>();
});
_objectMapper = new Mapper(config);
}
}
Когда я создаю экземпляр этого класса, при каждом создании конфигурации возникает исключение. Там написано:
"An item with the same key has already been added"
Я читаю вопросы с той же проблемой, и, похоже, не могу понять проблему. Отладка кода показала, что программе никогда не удается инициализировать Mapper, она вылетает прямо перед инициализацией конфигурации.
Что я пропустил?
Классы:
public abstract class PersonDto
{
public string Name { get; set; }
public string Surnames { get; set; }
public string Data{ get; set; }
public string Email { get; set; }
public string Telephone { get; set; }
public string Direction { get; set; }
}
public abstract class Person
{
public string Name { get; set; }
public string Surnames { get; set; }
public string Data { get; set; }
public string Email { get; set; }
public string Telephone { get; set; }
public string Direction { get; set; }
}
public class Patient : Person
{
public string Service { get; set; }
public float Pay { get; set; }
}
public class Employee : Person
{
public string Job { get; set; }
public float Salary { get; set; }
}
public class Doctor : Employee
{
public new string Job = "Doctor";
}
Это классы с теми же свойствами, что и оригиналы (я не включил методы, поскольку они не имеют значения). Dtos следуют той же структуре, что и сами сущности.