我有第一个类,代表我的 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);
经过大量使用聊天 GPT(以及大量的试验和错误)后,我们找到了一个可行的解决方案。
我需要制作一张从
InnerClass
到MyClass
的常规基本地图,然后将我调用它的方式更改为
var configs = response.SelectMany(c => c.MyConfig).Select(inner => _mapper.Map<MyClass>(inner));
然后就成功了