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); //測試通過
}
}
嵌套映射就這么簡單,和正常的映射一樣,只要指定映射的源類型和目標類型即可。