我有一个C#中的对象,让我们说20个属性,它是数据合同的一部分。我还有另一个具有类似属性的业务实体,我想从响应对象中填充该实体。除了将一个对象的每个属性分配给另一个对象的相应属性之外,是否有任何方法可以做到这一点?从另一个具有相同属性的对象创建对象
2
A
回答
5
是的,看看Automapper
0
C# Object Clone Wars可能是一个很好的起点。
1
如果您想以自动方式进行反射,只要属性名称在对象之间轻松映射即可,反射是一个选项。
1
Automapper值得一试,但最终我决定不适合我。这些工具的大问题是每次发生大量的运行时间开销,并且每次发生映射时都会发生。我问了这个问题same question last week,最后我滚动了自己的解决方案(查看接受的答案)。你可以自由修改我提供的源代码,我没有声称它的有效性,适用性,性能,你破解它,保留碎片等等,但它运行良好为我创建设计时对象到对象映射。
2
MiscUtil具有使用Expression
(.NET 3.5)和静态字段缓存编译委托回答这个(PropertyCopy
)(所以每次调用的成本可以忽略不计):
DestType clone = PropertyCopy<DestType>.CopyFrom(original);
如果你是使用2.0,那么反射可能是你的朋友。如果需要,您可以使用HyperDescriptor
来提高性能。
相关问题
- 1. 如何为一个类创建具有相同属性的多个对象,但每个对象的值不同
- 2. 从另一个对象创建对象
- 3. 如何值从另一个对象具有相同的定义添加到一个对象的属性在JavaScript
- 4. 从对象中删除属性是从具有相似名称的另一个对象中删除属性
- 5. JavaScript:如果另一个对象在另一个属性中具有相同值,则更改对象值
- 6. 使用现有的对象属性创建一个JavaScript对象
- 7. CodeDom - 创建具有对象数组属性的对象
- 8. R:创建了一个具有两个属性(class?)的对象
- 9. 将一个对象的属性复制到另一个具有相同基底的对象
- 10. 从另一个对象分配一个对象属性
- 11. 从轨道中的另一个对象创建一个对象
- 12. Typescript:创建一个具有多维属性的对象
- 13. 具有对象相同属性的多个值的筛选器
- 14. 用属性创建一个对象,
- 15. 具有与单一参数相同属性的对象?
- 16. 创建一个具有另一个类的对象的类
- 17. 不能两个ListItem对象具有相同的值属性吗?
- 18. 从另一个对象方法内访问对象属性
- 19. 如何使用Django中具有相同属性的另一个模型创建对象
- 20. 如何添加一个具有相似父对象和另一个具有相似对象列表的父对象到同一对象列表
- 21. 不同的javascript对象具有相同的属性(名称)
- 22. 是否可以从同一个原型对象中的另一个属性创建一个属性?
- 23. 创建从在另一个对象
- 24. C#:比较具有相同属性的不同对象集
- 25. 将数据从一个对象复制到另一个具有有限属性的对象
- 26. 创建具有多个属性的对象
- 27. 循环遍历对象数组并返回具有相同/键值对的对象作为另一个对象
- 28. 为什么在同一行创建的两个对象具有相同的对象,但这与列表不同?
- 29. 以不同方式从另一个对象创建对象的设计模式
- 30. 以与具有一些共同属性的对象的另一个对象列表相同的顺序排列对象列表