我有以下代码:
public static TDest Map2<TDest>(this object sourceObjInstance) where TDest : new()
{
var itemType = typeof(TDest);
var item = Activator.CreateInstance(itemType);
Mapper.Initialize((cfg => cfg.CreateMap<??????, TDest>());
var result = Mapper.Map(sourceObjInstance, item, sourceObjInstance.GetType(), item.GetType());
return (TDest)result;
}
所以,我不知道在哪里获取mapper.initialize方法的源对象的泛型参数(?????
占位符)。 sourceObjInstance
将由WCF自动生成。
答案 0 :(得分:0)
Automapper支持动态映射。如果在编译时不知道源/目标类型,请设置CreateMissingTypeMaps
配置属性:
Mapper.Initialize(cfg => cfg.CreateMissingTypeMaps = true);
object src = new Src();
object dest = new Dest();
Mapper.Map(src, dest);