0

是否有一种巧妙的方法来构建我的 WCF 服务,以便我可以实现一次服务并让它为不同的调用者返回不同的数据合同?(即移动客户端)

我们已经开发了一组由桌面应用程序使用的服务,现在正在构建应用程序的移动版本。问题是返回的数据传输对象 (DTO) 太大并且包含移动应用程序不必要的成员。随着它在移动网络上运行,我们希望删除这些以提高性能,但是服务的实现将是相同的。

到目前为止我们的想法:

  • 将 EmitDefault 设置为 false,然后不为移动呼叫者映射 DTO 上的所有属性(我们正在使用 automapper,因此可以使用多个映射配置来做一些事情)
  • 继承的桌面 DTO 类型,使用 KnownType 属性扩展基本移动类型。
  • 只是完全构建一个单独的服务,但确保所有逻辑都在一个共享的业务服务层中(它应该已经是)

有谁知道是否有针对此要求的任何指导?

4

1 回答 1

0

就我个人而言,我会将实现分开。正如您所指出的,每组客户端(移动端和桌面端)都有不同的要求。您可以共享服务的合同,只是有不同的实现/服务。这将允许为每个客户端专门化服务,并使其更容易扩展、修改和测试。

于 2012-04-09T15:01:45.307 回答