У меня есть два объекта.ObjectA содержит 2 строковых свойства, другой ObjectB содержит 3 строковых свойства и 2 словарных свойства.Я использую automapper для сопоставления из ObjectB значения словаря на основе ключа к свойству в ObjectA.
Я пытаюсь сопоставить A.payload ["reportId"] с B.ReportID
Не совсем уверен, что мне здесь не хватает.
public class ObjectA
{
public string customerId { get; set; }
public string consumerId { get; set; }
public string eventType { get; set; }
public string eventId { get; set; }
public IDictionary<string, string> payload { get; set; }
public IDictionary<string, string> webhookData { get; set; }
}
public class ObjectB
{
public string CustomerID { get; set; }
public string ReportID { get; set; }
}
CreateMap<ObjectA, ObjectB>()
.ForMember(desc => desc.CustomerID, opt => opt.MapFrom(src => src.customerId))
.ForMember(desc => desc.ReportID, opt => opt.MapFrom(src => src.payload.ContainsKey("reportId") ? src.payload["reportId"] : ""));
Я получаю следующую ошибку:
Найдены несопоставленные члены.Просмотрите типы и членов ниже.Добавление пользовательского выражения сопоставления, игнорирование, добавление пользовательского преобразователя или изменение типа источника / назначения. Если нет подходящего конструктора, добавьте c-аргумент без аргументов, добавьте необязательные аргументы или сопоставьте все параметры конструктора. AutoMapper создал эту карту типов для вас., но ваши типы не могут быть сопоставлены с использованием текущей конфигурации.ObjectA -> ObjectB (список участников-адресатов) ObjectA -> ObjectB (список участников-адресатов) Неподключенные свойства: ReportID