DTO太重而无法共享

问题描述 投票:0回答:1

我在我的应用程序中有一个域实体,它通过wcf和restful api公开功能 - 其中属性用各种属性修饰 - 例如SwaggerWCF,以及一些验证规则,如[Mandatory]。

现在这很好,但我现在正在开发一个客户端库,以便于使用这些服务。我遵循的典型模式是将DTO分解为单独的nuget包,然后由服务和客户端使用。

然而,这些DTO很重 - 他们可能甚至不是dtos。

我如何将我可爱的POCOS暴露为Dtos,然后在服务端叠加额外的东西?

我只能看到前方道路上的重复......

c# design-patterns poco dto
1个回答
0
投票

DTO通常是转移的较小位通常用于两个目的,a)使数据变小以进行传输; b)允许从内部工作中抽取一些以防止在需要时暴露所有内容。

如果a)不是一个问题,因为它们会很大,b)仍然有用于隐藏一些属性等,所以创建几乎重复的DTO可能没问题,并且可以使用某种自动映射进行管理。

让DTO分离这些问题,如果您需要提供客户端库,可以更容易地将它们提取到单独的包中。

© www.soinside.com 2019 - 2024. All rights reserved.