Отображение на свойство из словарной записи - PullRequest
0 голосов
/ 20 мая 2019

У меня есть два объекта.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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...