C# Automapper DynamicMap无法映射匿名类型的列表

C# Automapper DynamicMap无法映射匿名类型的列表,c#,automapper,anonymous-types,C#,Automapper,Anonymous Types,我有以下代码片段 var files = query.ToList(); var testFile = Mapper.DynamicMap<EftFileDto>(files.First()); var filesDto = Mapper.DynamicMap<List<EftFileDto>>(files); 在大多数映射场景中,我们知道要映射到的类型 编译时。在某些情况下,源类型直到 运行时,尤其是在使用动态类型或 可扩展性场景 DynamicMap调用

我有以下代码片段

var files = query.ToList();
var testFile = Mapper.DynamicMap<EftFileDto>(files.First());
var filesDto = Mapper.DynamicMap<List<EftFileDto>>(files);
在大多数映射场景中,我们知道要映射到的类型 编译时。在某些情况下,源类型直到 运行时,尤其是在使用动态类型或 可扩展性场景

DynamicMap调用为源的类型创建配置 对象传递到指定的目标类型。如果这两种类型 已经映射,AutoMapper跳过这一步(我可以调用 动态映射多次(对于本例)

资料来源:

较短版本:DynamicMap与调用CreateMap然后调用Map相同

某个傀儡阶级

public class Person
    {
        public string Name { get; set; }
        public string Surname { get; set; }
        public int Age { get; set; }
    }
假设你有一张名单

var persons = new List<Person>();
for (int i = 0; i < 100; i++)
{
      persons.Add(new Person { 
                Name = String.Format("John {0}", i), 
                Surname = String.Format("Smith {0}", i), 
                Age = i });
}
要正确映射第一人称

var testFile = Mapper.DynamicMap<Person>(anonymousTypes.First()); 
var testFile=Mapper.DynamicMap(anonymousTypes.First());
要正确映射您将使用的所有人员

var testFiles  = anonymousTypes.Select(Mapper.DynamicMap<Person>).ToList(); 
var testFiles=anonymousTypes.Select(Mapper.DynamicMap.ToList();

也许可以检查以下解决方案:@plurby,这根本不适用,因为这个问题涉及两种已知类型,我有一个匿名类型的列表,所以我需要使用
DynamicMap
而不是我检查过的
Map
,当您使用query.Select(Mapper.DynamicMap).ToList()时它会起作用;语法。你能为你的查询和DTO提供代码以便我们能帮助你解决问题吗?你刚才回答了我在我的编辑中发布的解决方案。问题是我不需要使用
。选择
单独映射每个项目,我应该能够使用
Mapper.DynamicMap(文件)将其映射为一个集合单个项目有效,列表无效。因此,了解Dto的结构应该无关紧要,因为单个项目映射正确。我知道,我刚刚提供了一个测试,看看它是否有效。如果您发现它是一个问题,请在项目页面上发布它或提出请求。为什么使用Select()会让您感到烦恼?它看起来很粗糙,我很好奇为什么它没有像它看起来应该的那样工作。.Select(Mapper.DynamicMap)位+1,这对我来说很有效。
var testFile = Mapper.DynamicMap<Person>(anonymousTypes.First()); 
var testFiles  = anonymousTypes.Select(Mapper.DynamicMap<Person>).ToList();