DTO太重而无法共享

时间:2018-08-31 11:05:55

标签: c# design-patterns poco dto

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

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

但是这些DTO很沉重-甚至它们都不是DTO。

如何将我可爱的POCOS公开为Dtos,然后在服务端添加更多内容?

我只能在前面的道路上看到重复的东西。...

1 个答案:

答案 0 :(得分:0)

通常是要传输的较小位的DTO通常有两个用途,a)使数据传输更小,b)允许从内部工作中进行抽象以防止在需要时公开所有内容。

如果a)因为它们很大而不必担心,则b)在隐藏一些属性等方面仍然很有用,因此创建几乎重复的DTO可能是可以的,并且可以使用某种自动映射进行管理。

拥有DTO可以将这些问题分开,如果您需要提供客户端库,则可以更轻松地将它们提取到单独的程序包中。