0
我以前使用automapper来映射列表,因为某些原因,在这种情况下它不起作用。AutoMapper无法映射简单列表
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
}
谢谢吉米。不知道为什么动态地图在这种情况下不起作用。当然,它只需要从传入的值中推断出该类型,并将其映射到指定的类型?似乎多余的必须说明映射的类型。 – JAG 2011-05-12 15:07:34
除非运行时类型与编译时类型不同。解决此问题有一个拉取请求,但我们仍在制定详细信息以确保它与现有方法不冲突: https://github.com/jbogard/AutoMapper/pull/17 – 2011-05-13 12:43:49