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

时间:2010-09-22 19:45:47

标签: .net client-server lazy-loading

我有一个应用程序,客户端通过REST与服务器端通信。这是用.Net写的,但我想问题应该与此无关。

现在 - 我有GetAllCustomersGetCustomerById等服务。客户引用了潜在的大订单列表,因此我不想从GetAllCustomers服务传递客户参考。我基本上想要返回客户的简单数据,但没有参考。然后,当客户端中选择了客户时,我将执行另一个服务调用GetCustomerById以获取完整数据。

现在的问题是 - 是否有推荐的处理方法?使用延迟加载我可以在加载引用之前简单地传递对象 - 然后确保在客户端不使用它。但这难看吗? (另外 - 我在使用REST传递延迟加载的对象时遇到了问题,但它与SOAP一起使用 - 但这是一个不同的问题..)我想我可以从数据库中获取所有数据,然后在返回之前删除引用,但是这个肯定听起来很丑陋。另外,我的数据库仍然会受到不必要的负担..

因此;有一个很好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

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

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

编辑:您可以使用属性[System.Xml.Serialization.XmlIgnoreAttribute]

省略序列化中的成员