我是一名学生,目前正在涉足使用 Nhibernate+WCF+WPF 的 .Net n-tier 应用程序。
其中一件非常糟糕的事情是对象图序列化,事实上它根本没有完成,目前关联被忽略了,我们到处都在使用 DTO。
据我所知,一种方法是预定义应该加载和序列化哪些对象和集合以通过网络,从而能够向客户端呈现一些关联,但这似乎是有限的、不灵活的和不一致的(你能告诉我不喜欢这个主意)。
我想到的一个选择是简单地将客户端层上延迟加载收集的 NHProxies 替换为“disconnectedProxy”,该代理将通过网络检索相关联的内容。这意味着我们必须稍微扩展我们的 Web 服务签名并对我们生成的代理做一些黑客攻击,但这似乎是一个很好的 T4/其他代码生成实验。
据我所知,这似乎是一个常见的绊脚石,但经过大量阅读后,我无法找出任何好的/普遍接受的解决方案。我正在寻找与任何特定解决方案一样多的方向,但如果有一种简单的方法可以让客户“感觉”连接,请告诉我。