从字典条目映射到属性

时间:2019-05-20 20:50:07

标签: c# dictionary asp.net-core automapper

我有两个对象。 ObjectA包含2个字符串属性,另一个ObjectB包含3个字符串属性和2个字典属性。我正在使用自动映射器从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"] : ""));

我收到以下错误:

  

找到未映射的成员。在下面查看类型和成员。添加一个   自定义映射表达式,忽略,添加自定义解析器或修改   源/目标类型对于没有匹配的构造函数,请添加一个无参数   ctor,添加可选参数或映射所有构造函数参数   AutoMapper为您创建了此类型映射,但是您的类型不能为   使用当前配置映射。对象A->对象B   (目标成员列表)ObjectA-> ObjectB(目标成员列表)   未映射的属性:ReportID

0 个答案:

没有答案