我在我的应用程序中有一个域实体,它通过wcf和restful api公开功能 - 其中属性用各种属性修饰 - 例如SwaggerWCF,以及一些验证规则,如[Mandatory]。
现在这很好,但我现在正在开发一个客户端库,以便于使用这些服务。我遵循的典型模式是将DTO分解为单独的nuget包,然后由服务和客户端使用。
然而,这些DTO很重 - 他们可能甚至不是dtos。
我如何将我可爱的POCOS暴露为Dtos,然后在服务端叠加额外的东西?
我只能看到前方道路上的重复......
DTO通常是转移的较小位通常用于两个目的,a)使数据变小以进行传输; b)允许从内部工作中抽取一些以防止在需要时暴露所有内容。
如果a)不是一个问题,因为它们会很大,b)仍然有用于隐藏一些属性等,所以创建几乎重复的DTO可能没问题,并且可以使用某种自动映射进行管理。
让DTO分离这些问题,如果您需要提供客户端库,可以更容易地将它们提取到单独的包中。