私はこれらのモデルを持っているとしましょう
public class Mouse
{
public string Cheese { get; set; }
}
public class Cat
{
public string Hairball { get; set; }
}
public class Dog
{
public string ChewyToy { get; set; }
}
そして、マウスを猫にマップし、次に猫を犬にマップします。
Mapper.CreateMap<Mouse, Cat>().ForMember(m => m.Hairball, o => o.MapFrom(src => src.Cheese));
Mapper.CreateMap<Cat, Dog>().ForMember(m => m.ChewyToy, o => o.MapFrom(src => src.Hairball));
ひいては、マウスも犬にマッピングする必要がありますよね?2つの間でマップしようとすると:
var mouse = new Mouse() { Cheese = "Eat me" };
Dog dog = Mapper.Map<Mouse, Dog>(mouse);
例外が発生します:
App_Start.MapConfig+MouseをApp_Start.MapConfig+Dogにマップしようとしています。タイプ「AutoMapper.AutoMapperMappingException」の例外がスローされました。
マウスと犬の間にマップを明示的に作成せずにこれを行うにはどうすればよいですか?これは、より大きな問題の簡単な例です。また、Value Injector、Glueなどのフレームワークがこの動作をサポートしている場合は、それらを切り替えることもできます。