【发布时间】:2011-01-16 15:50:45
【问题描述】:
在各种场景中使用简单的 DTO 时,我经常遇到相同类型的问题,我一直想知道是否有更好的方法来处理它。
问题是,我有一个业务对象,例如Asset 有一堆属性,子对象和计算字段,其中一些在时间上计算成本很高,其中一些在数据量上很大。我需要在 UI 的各个屏幕中使用此对象的不同风格,例如
- 在显示层次结构的树中,我只需要显示名称即可
- 在我只显示几个属性的网格中
- 在有大量可用信息的详细信息窗格中,但其中的一些(如映射对象)仍仅按需显示
为了能够在这种情况下实现最佳性能,我总是为每个上下文创建不同的 DTO,只包含在该上下文中实际使用的信息子集。虽然是一种资源优化的解决方案,但这会导致几个问题:
- 我有大量 DTO 类的类爆炸
- 我很难为
AssetDtoForGridInTheOverviewScreenInTheUpperPaneAboveTheSplitter这样的同一事物想出不同的名称,更不用说以后维护它们了 - 我经常在转换方法中重复自己,因为有一些属性被 大多数 DTO 使用,但不是被 所有 他们使用(因此我可以'不要将它们放入任何超类并重用转换逻辑)
我使用的技术是 ASP.NET SOAP WebServices 和 C# 3.5,但我认为这可能是与语言无关的问题。欢迎任何想法..
【问题讨论】:
标签: c# .net web-services dto