WCF:暴露的对象模型 - 卡在循环中

时间:2010-02-08 07:08:38

标签: wcf wssf

我正在开发一个非常大的WSSF项目。我在业务层中有一个普通的对象模型。例如,客户具有订单收集属性,当访问它时,它从数据层加载(延迟加载)。订单有productCollection属性等等。

现在我觉得棘手的是通过WCF暴露这个。我想导出一组订单。客户端应用程序还需要有关客户的信息。使用WSSF数据协定设计器我已经设置了它,以便客户拥有一个名为“订单集合”的属性。如果你有一个客户对象并希望查看订单,那么这很好,但是如果你有一个订单对象,那么就没有客户属性,所以它不会在层次结构上运行。

我已经尝试将一个客户属性添加到订单对象,但是当它加载数据合同时,代码会陷入循环。这是因为它不像业务层那样按需加载。我需要在通过WCF发送对象之前加载所有属性。它最终加载订单,然后是该订单的客户,然后是该客户的订单,然后该订单的客户等等......

我确定我错了。帮助!

1 个答案:

答案 0 :(得分:0)

通常,对于WCF,最好将契约视为“远程对象”,而将其视为可以调用以从中获取数据或将数据传递给的接口。

在返回的对象上调用的任何方法都在本地处理,而不是在对象生成的位置处理。实际上,从服务器两次获取“相同”对象通常会导致客户端上有两个完全独立的对象!

要获得您所询问的功能,您可能需要编写一些客户端代码来为您创建远程对象“幻觉”。