【发布时间】:2011-04-29 02:44:49
【问题描述】:
我必须在 C# 项目中使用的域类和发送到 Flash 客户端的类之间进行一些对象到对象的映射。
我的第一选择是 Automapper。但是我遇到了一些问题(嵌套属性,没有定义无参数构造函数)。事实证明,用 Automapper 映射一个非常复杂的类型并不是那么容易。
为什么不实现如下方法?
ClassA GetClassAByClassB(ClassB pObj)
{
ClassA objA = new ClassA();
objA.Prop1 = pObj.Prop1;
objA.NestedType.Prop2 = pObj.Prop2;
//....Some more.....
return objA;
}
它与使用 Automapper 完成映射具有完全相同的灵活性。您仍然必须提供将源对象中的哪个属性复制到目标对象中的哪个属性中。您只需使用 = 而不是 lambda 表达式即可。
但是,如果您更改域类中的某些内容,则无论如何都必须更改此“映射”部分。那么,与文字映射相比,使用 Automapper 的主要优势是什么?
【问题讨论】:
标签: mapping automapper object-object-mapping