假设我的AutoMapper配置知道如何从T1类型映射到T2类型,从T2映射到T3类型。然后我有以下内容。它有效:
public static class MapperExtensions
{
public static T3 MapVia<T1, T2, T3>(this IMapper mapper, T1 t1) {
var t2 = mapper.Map<T2>(t1);
var t3 = mapper.Map<T3>(t2);
return t3;
}
/// <summary> The calling code needs to ensure that t1 is of a type that the mapper knows how to map to type T2.</summary>
public static T3 MapVia<T2, T3>(this IMapper mapper, object t1) {
var t2 = mapper.Map<T2>(t1);
var t3 = mapper.Map<T3>(t2);
return t3;
}
}
我的问题是是否可以绕过中间类型?我希望能够在我的配置中做一些事情来告诉它“生成从T1到T3的地图,这是地图从T1到T2以及你的地图从T2到T3的组成。”然后我可以正常地从T1映射到T3。
有时T2很大,这可能会导致性能问题。还有一些情况下T2不是特别大。
答案 0 :(得分:0)
将Lucian Bargaoanu的评论转换为答案:没有内置方法可以做到这一点。