私は失敗するこのコードを持っています:
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; }
}
Stuff / Stuff2の値が同じ場合、次の例外が発生します。
同じキーのアイテムはすでに追加されています。
それらが異なる値を持っている場合、すべてが機能します。AutoMapper2.2.0を使用しています。
私は何か間違ったことをしましたか、それともバグですか?どうすれば解決できますか?