我有一个源类型,它具有属性和一个目标类型,该目标类型具有完全相同的属性。
在我像下面这样为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);
}
有没有什么方法可以避免这种静态的丑陋?
MyDestinationType destinationobj = new MyDestinationType(sourceobj);
但这与简单地调用MyDestinationType destinationobj = Mapper.Map<MyDestinationType>(sourceobj);
是一样的。如果你真的需要一个单独的构造函数,你可以尝试this = Mapper.Map<MyDestinationType>(source);
但我不确定是否可以直接赋值给this
。编辑:我测试过了,你不能赋值给this
。 - Nils O