自动映射器无法映射简单列表



我过去曾使用自动映射器映射列表,由于某种原因,它在这种情况下不起作用。

     public class MyType1 {
            public int Id { get; set; }
            public string Description { get; set; }
        }

        public class MyType2 {
            public int Id { get; set; }
            public string Description { get; set; }
        }
     public void DoTheMap() {
                Mapper.CreateMap<MyType2, MyType1>();
                Mapper.AssertConfigurationIsValid();
                var theDto1 = new MyType2() { Id = 1, Description = "desc" };
                var theDto2 = new MyType2() { Id = 2, Description = "desc2" };
                List<MyType2> type2List = new List<MyType2> { theDto1, theDto2 };
                List<MyType1> type1List = Mapper.DynamicMap<List<MyType1>>(type2List);
    //FAILURE.  NO EXCEPTION, BUT ZERO VALUES
                List<MyType1> type1List2 =type2List.Select(Mapper.DynamicMap<MyType1>).ToList();
   //SUCCESS, WITH LINQ SELECT
        }

更改以下内容:

Mapper.DynamicMap<List<MyType1>>(type2List)

对此:

Mapper.Map<List<MyType1>, List<MyType2>>(type2List);

DynamicMap 仅在编译时不知道类型时 - 对于匿名类型之类的东西。

相关内容

  • 没有找到相关文章

最新更新