• AutoMapper之嵌套映射


    8.嵌套映射

    嵌套映射就是一个类中包含有另一个类,这种情况下我们应该如何映射呢?

    /// <summary>
    /// 源对象
    /// </summary>
    public class OuterSource
    {
        public int Value { get; set; }
        public InnerSource Inner { get; set; }
    }
    /// <summary>
    /// 源嵌套对象
    /// </summary>
    public class InnerSource
    {
        public int OtherValue { get; set; }
    }
    
    /// <summary>
    /// 目标对象
    /// </summary>
    public class OuterDest
    {
        public int Value { get; set; }
        public InnerDest Inner { get; set; }
    }
    /// <summary>
    /// 目标嵌套对象
    /// </summary>
    public class InnerDest
    {
        public int OtherValue { get; set; }
    }
    
    /// <summary>
    /// 嵌套映射测试类型
    /// </summary>
    [TestClass]
    public class NestedMapping
    {      
    
        [TestMethod]
        public void NestedMappingTest()
        {
            //初始化
            Mapper.Initialize(cfg => {
                //指定外部类映射
                cfg.CreateMap<OuterSource, OuterDest>();
    	        //指定内部类映射
                cfg.CreateMap<InnerSource, InnerDest>();
            });
            var src = new OuterSource
            {
                Value = 1,
                Inner = new InnerSource { OtherValue =2}
            };
            OuterDest dest = Mapper.Map<OuterSource, OuterDest>(src);
    
            //验证结果
            Assert.AreEqual(1, dest.Value); //测试通过
            Assert.IsNotNull(dest.Inner);  //测试通过
            Assert.AreEqual(2, dest.Inner.OtherValue);  //测试通过
        }
    }
    

    嵌套映射就这么简单,和正常的映射一样,只要指定映射的源类型和目标类型即可。

    示例代码

    官方地址

  • 相关阅读:
    关于2019-nCoV事件中新媒体的作用
    评估移民宇宙计划
    关于2019-nCoV事件,分析自己的焦虑心理
    肺炎阴云仍未散去,今天捡到一个贝壳
    关于新型肺炎,重点是毒性
    提高效率的方法
    《白说》读书笔记
    MIPS下载运行busybox
    camera模组笔记
    求知领域
  • 原文地址:https://www.cnblogs.com/wuyunblog/p/6664438.html
Copyright © 2020-2023  润新知