Automapper 5不映射使用只读属性定义的集合集合

时间:2016-11-23 20:16:20

标签: automapper-5

当我升级到Automapper 5.1.1时,使用readonly属性定义的集合的映射停止工作(使用Automapper 4.2.1完全正常)

以下是一个示例代码,您可以尝试使用两个版本的Automapper来验证行为更改。使用automapper 5.1.1 result.MyList没有元素。

class TestAutomapper
{
    public static void Test()
    {
        Mapper.Initialize(cfg =>
        {
            cfg.CreateMap<Test, TestDto>();                
        });
        var test = new Test();
        test.MyList.Add(1);

        var result= Mapper.Map<TestDto>(test);
    }
}

public class Test
{
    public List<int> MyList { get; } = new List<int>();
}

public class TestDto
{
    public List<int> MyList { get; } = new List<int>();
}

如何使用Automapper 5.1.1让地图正常工作?

1 个答案:

答案 0 :(得分:2)

使用版本4.2.1 ,它不适用于我们。它在 4.2.1 中为你工作很奇怪。

要使其与 AutoMapper 4.2.1 一起使用,我们必须明确告知如何将原始集合映射到目标集合。

CreateMap.Map<TestDto, Test>()
      .ForMember(x => x.MyList, opt => opt.MapFrom(y => y.MyList));