2009-05-20 97 views
2

我有一个C#中的对象,让我们说20个属性,它是数据合同的一部分。我还有另一个具有类似属性的业务实体,我想从响应对象中填充该实体。除了将一个对象的每个属性分配给另一个对象的相应属性之外,是否有任何方法可以做到这一点?从另一个具有相同属性的对象创建对象

回答

1

如果您想以自动方式进行反射,只要属性名称在对象之间轻松映射即可,反射是一个选项。

1

Automapper值得一试,但最终我决定不适合我。这些工具的大问题是每次发生大量的运行时间开销,并且每次发生映射时都会发生。我问了这个问题same question last week,最后我滚动了自己的解决方案(查看接受的答案)。你可以自由修改我提供的源代码,我没有声称它的有效性,适用性,性能,你破解它,保留碎片等等,但它运行良好为我创建设计时对象到对象映射。

2

MiscUtil具有使用Expression(.NET 3.5)和静态字段缓存编译委托回答这个(PropertyCopy)(所以每次调用的成本可以忽略不计):

DestType clone = PropertyCopy<DestType>.CopyFrom(original); 

如果你是使用2.0,那么反射可能是你的朋友。如果需要,您可以使用HyperDescriptor来提高性能。

相关问题