【问题标题】:Automapper Mapping, inheritance from generic listAutomapper 映射,从通用列表继承
【发布时间】:2017-05-17 03:29:33
【问题描述】:
    public class Flight {
        public CabinCollection Cabins { get; set; }
    }

    public class CabinCollection : List<Cabin>
    {
        public Cabin Lowest { set; get; }
    }

source 和 dest 类具有相同的成员

   1)  Mapper.Initialize(cfg => {
        cfg.CreateMap<Domain.Flight, Contract.Flight>();
        cfg.CreateMap<Domain.Cabin, Contract.Cabin>();
    });

    List<Flight> res = Mapper.Map<List<Flight>>(flights);

它有效,但成员“最低”为空

   2)  Mapper.Initialize(cfg => {
            cfg.CreateMap<Domain.Flight, Contract.Flight>();
            cfg.CreateMap<Domain.Cabin, Contract.Cabin>();
            cfg.CreateMap<Domain.CabinCollection,Contract.CabinColection>
                .IncludeBase<List<Domain.Cabin>, List<Contract.Cabin>>()
        });

它可以工作并且成员“最低”已映射,但列表为空

有没有办法让它变得正确?

【问题讨论】:

  • 此代码无需任何额外配置即可工作。
  • 它确实有效,但没有返回预期结果
  • @ShawnQian 我也面临同样的问题,你有什么想法可以解决这个问题吗?谢谢。

标签: c# automapper


【解决方案1】:

将此添加到您的配置中

cfg.CreateMap<Domain.CabinCollection, Contract.CabinCollectionDest>();

基本上 Automapper 不知道如何映射 CabinCollection 对象

.Net fiddle link to show this

【讨论】:

  • 这仍然不会映射CabinCollection 的元素,只有最低舱。目的地列表将为空。
猜你喜欢
  • 2017-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 2021-09-17
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多