如何在源类型未知时初始化自动映射

时间:2017-06-15 13:50:00

标签: c# types initialization automapper

我有以下代码:

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自动生成。

1 个答案:

答案 0 :(得分:0)

Automapper支持动态映射。如果在编译时不知道源/目标类型,请设置CreateMissingTypeMaps配置属性:

Mapper.Initialize(cfg => cfg.CreateMissingTypeMaps = true);

object src = new Src();
object dest = new Dest();

Mapper.Map(src, dest);