使用WCF服务域模型延迟加载?

使用WCF服务域模型延迟加载?,wcf,web-services,domain-driven-design,Wcf,Web Services,Domain Driven Design,我希望将我的域模型推进到一个WCF服务API中,并希望获得一些关于这种类型设置的延迟加载技术的想法 采取这种方法时有什么建议吗 当我实现这项技术并进入我的应用程序时,就在服务器返回我的列表之前,它会点击每个应该延迟加载的属性的get。。。因此,迫切需要加载。你能解释一下这个问题或者提出一个解决方案吗 编辑:您可以使用XMLIgnore属性,这样在序列化过程中就不会看到它。。不过,对于任何远程处理体系结构,您都希望避免以不受控制的方式“下载”完整的对象图(除非您的对象数量很少) 标准技术已经得到

我希望将我的域模型推进到一个WCF服务API中,并希望获得一些关于这种类型设置的延迟加载技术的想法

采取这种方法时有什么建议吗


当我实现这项技术并进入我的应用程序时,就在服务器返回我的列表之前,它会点击每个应该延迟加载的属性的get。。。因此,迫切需要加载。你能解释一下这个问题或者提出一个解决方案吗


编辑:您可以使用XMLIgnore属性,这样在序列化过程中就不会看到它。。不过,对于任何远程处理体系结构,您都希望避免以不受控制的方式“下载”完整的对象图(除非您的对象数量很少)

标准技术已经得到了相当多的总结(在C语言中也是如此!)。我使用了鬼魂和价值持有者,它们工作得很好

要实现这种技术,请确保严格分离关注点。在服务器上,您的服务契约实现类应该是处理数据契约的唯一代码位。在客户端上,服务访问层应该是与代理一起工作的唯一代码


这样的分层允许您相对独立于调用服务的UI层和被调用的业务层来调整服务的实现方式。它也给你半个单元测试的机会

不要在服务接口上进行延迟加载。定义显式DTO并将其作为WCF中的数据协定使用


您可以使用NHibernate(或其他ORM)正确获取构建DTO所需的对象。

您可以尝试使用基于REST的工具(例如),并将其透明地包装到您的客户端代码中。

我被困在ado.net的世界中。。。有没有可能提供您提到的这种方法的示例?基本上,您需要创建一个从IList或ICollection继承的ProxyCollection,这需要能够跟踪加载项的命令。访问任何成员后,首先执行命令以填充列表。