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);  //測試通過
    }
}

嵌套映射就這么簡單,和正常的映射一樣,只要指定映射的源類型和目標類型即可。

示例代碼

官方地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM