使用自动映射器将 HTTP 响应展平到我想要的类

问题描述 投票:0回答:1

我有第一个类,代表我的 http 调用的反序列化内容

    public class Contract
    {
        public IEnumerable<InnerClass> MyConfig { get; set; }
    }

    public class InnerClass
    {
        public int Id { get; set; }
        public string Value { get; set; }
    }

我想将其映射到更扁平的类

    public class MyClass
    {
        public int IdWithDifferentName { get; set; }
        public string ValueWithDifferentName { get; set; }
    }

我的挑战是响应是一个数组,所以有效地我得到了

IEnumberable<Contract>
,然后我想将其映射到
IEnumerable<MyClass>
,它应该包含所有 InnerClass 值,无论它来自哪个 Contract 实例。

我需要在自动映射器中做什么才能让它工作?

这就是我如何称呼自动映射器:

 var configs = _mapper.Map<IEnumerable<MyClass>>(response);
c# automapper
1个回答
0
投票

经过大量使用聊天 GPT(以及大量的试验和错误)后,我们找到了一个可行的解决方案。

我需要制作一张从

InnerClass
MyClass
的常规基本地图,然后将我调用它的方式更改为

var configs = response.SelectMany(c => c.MyConfig).Select(inner => _mapper.Map<MyClass>(inner));

然后就成功了

© www.soinside.com 2019 - 2024. All rights reserved.