自动映射器和多维列表
Automapper and multidimensional list
我想将 List<List<Item>>
映射到 List<List<Item2>>
,但我无法使其工作。有没有办法使用简单的配置来做到这一点,或者这种情况是否需要编写自定义转换器?这是我的案例(也可在 dotnetfiddle 上找到):
using System;
using System.Collections.Generic;
using AutoMapper;
using Newtonsoft.Json;
public class Program
{
public static void Main()
{
var configuration = new MapperConfiguration(cfg =>
{
cfg.CreateMap<ItemCollection, List<List<Item2>>>();
cfg.CreateMap<List<List<Item>>, List<List<Item2>>>();
cfg.CreateMap<List<Item>, List<Item2>>();
cfg.CreateMap<Item, Item2>().ForMember(x => x.Name, opt => opt.MapFrom(x => x.Name));
});
var mapper = new Mapper(configuration);
var collection = new ItemCollection();
collection.Add(new List<Item>(){new Item{Name = "item"}});
var dest = mapper.Map<List<List<Item2>>>(collection);
Console.WriteLine(JsonConvert.SerializeObject(dest));
}
}
public class ItemCollection : List<List<Item>>
{
}
public class Item
{
public string Name { get; set; }
}
public class Item2
{
public string Name { get; set; }
}
因此,我希望在输出 window 中看到 [[{Name = "item"}]]
。
您不需要指定如何映射到集合,只需指定个别类型。
我想将 List<List<Item>>
映射到 List<List<Item2>>
,但我无法使其工作。有没有办法使用简单的配置来做到这一点,或者这种情况是否需要编写自定义转换器?这是我的案例(也可在 dotnetfiddle 上找到):
using System;
using System.Collections.Generic;
using AutoMapper;
using Newtonsoft.Json;
public class Program
{
public static void Main()
{
var configuration = new MapperConfiguration(cfg =>
{
cfg.CreateMap<ItemCollection, List<List<Item2>>>();
cfg.CreateMap<List<List<Item>>, List<List<Item2>>>();
cfg.CreateMap<List<Item>, List<Item2>>();
cfg.CreateMap<Item, Item2>().ForMember(x => x.Name, opt => opt.MapFrom(x => x.Name));
});
var mapper = new Mapper(configuration);
var collection = new ItemCollection();
collection.Add(new List<Item>(){new Item{Name = "item"}});
var dest = mapper.Map<List<List<Item2>>>(collection);
Console.WriteLine(JsonConvert.SerializeObject(dest));
}
}
public class ItemCollection : List<List<Item>>
{
}
public class Item
{
public string Name { get; set; }
}
public class Item2
{
public string Name { get; set; }
}
因此,我希望在输出 window 中看到 [[{Name = "item"}]]
。
您不需要指定如何映射到集合,只需指定个别类型。