代码之家  ›  专栏  ›  技术社区  ›  stiank81

不在服务调用上传递对象引用的最佳实践

  •  2
  • stiank81  · 技术社区  · 14 年前

    我有一个应用程序,其中客户机通过REST与服务器端通信。这是用.NET写的,但我想这个问题应该独立于此。

    现在-我有这样的服务 GetAllCustomers GetCustomerById . 一个客户引用了一个潜在的大订单列表,因此我不想将客户引用从 获取所有客户 服务。我基本上想用简单的数据返回客户,但没有参考资料。那我再打个服务电话 getCustomerByID(getCustomerByID) 在客户机中选择客户时获取完整的数据。

    现在的问题是——有没有建议的方法来处理这个问题?使用延迟加载,我可以在加载引用之前简单地传递对象,然后确保在客户端上不使用它。但这很难看吗?(我也遇到了将懒惰加载的对象与REST通信时遇到的问题,但它与SOAP工作时遇到的问题不同。)我想我可以从数据库中提取所有数据,然后在返回之前删除引用,但这听起来确实很糟糕。另外,我的数据库仍然有不必要的负载。

    那么,有没有一个好的解决办法呢?

    1 回复  |  直到 14 年前
        1
  •  1
  •   mcabral    14 年前

    我假设您使用JSON/XML传输数据。

    尝试延迟加载对象(服务器端),序列化时忽略客户机顺序列表。

    编辑:可以从具有属性的序列化中省略成员 [System.Xml.Serialization.XmlIgnoreAttribute]