我有一个具有属性的源类型和一个具有完全相同属性的目标类型。

在我为 AutoMapper 配置了一个简单的映射后,例如:

Mapper.CreateMap<MySourceType, MyDestinationType>();

我想要一个 MyDestinationType 的构造函数,它有一个 MySourceType
参数,然后使用源自动初始化正在创建的类型的属性,如下所示:
public MyDestinationType(MySourceType source)
{
    // Now here I am do not know what to write.
}

我发现的唯一解决方法是创建一个静态工厂方法
public static MyDestinationType Create(MySourceType source)
{
     return Mapper.Map<MyDestinationType>(source);
}

有什么办法可以避免这种静态的丑陋吗?

最佳答案

虽然我个人觉得它很丑,但你可以做的是:

public MyDestinationType(MySourceType source)
{
    Mapper.Map<MySourceType, MyDestinationType>(source, this);
}

10-06 12:17