使用AutoMapper映射相同值时出错

All*_*est 5 c# automapper

我有这个代码失败了:

internal class Program
{
    private static void Main()
    {
        Mapper.CreateMap<SourceFoo, TargetFoo>();
        Mapper.CreateMap<string, Stuff>()
            .ForMember(dest => dest.Value, opt => opt.MapFrom(src => src))
            .ForMember(dest => dest.IgnoreMe, opt => opt.Ignore());

        var source = new SourceFoo
            {
                Stuff = "a",
                Stuff2 = "a"
            };
        var target = new TargetFoo
            {
                Stuff = new Stuff(),
                Stuff2 = new Stuff()
            };
        Mapper.Map(source, target);

        Console.WriteLine(target.Stuff.Value);
        Console.WriteLine(target.Stuff2.Value);
        Console.ReadLine();
    }
}

public class SourceFoo
{
    public string Stuff { get; set; }

    public string Stuff2 { get; set; }
}

public class TargetFoo
{
    public Stuff Stuff { get; set; }

    public Stuff Stuff2 { get; set; }
}

public class Stuff
{
    public string Value { get; set; }
    public bool IgnoreMe { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当Stuff/Stuff2具有相同的值时,我得到以下异常:

已添加具有相同键的项目.

如果他们有不同的价值观,一切正常 我使用AutoMapper 2.2.0.

我做错了什么或者它是一个错误?我该如何解决?

kma*_*zek 7

这是一个错误.

现在您可以安装2.1.267版.

NuGet包管理器控制台命令:

卸载 - 包AutoMapper -Force

安装包AutoMapper -Version 2.1.267

检查此链接:

https://github.com/AutoMapper/AutoMapper/issues/250

在里程碑:2.2.1问题#270