我在客户端UI(Silverlight 3.0)和数据层之间使用WCF服务。我们正在使用NHibernate进行数据库访问。所以请告诉我,我的以下理解是否正确:
也有人可以告诉我,我们如何将对象从WCF传递到UI(Silverlight 3.0)层,反之亦然。我读过我们使用DTO。但是DTO如何运作?它们是否与WCF中的“数据合同”相对应?如果没有,那么DTO是否在WCF(服务器端)和客户端代码上声明了?
答案 0 :(得分:5)
不,不太......
Save
WCF运行时解压缩参数并在服务类上调用相应的消息
同样的步骤 - 基本上是向后 - 完成了回复
重点:客户端和服务器之间的唯一是序列化消息(可以通过电子邮件或信鸽快递发送) - 这是没有其他连接 - 没有“远程对象调用”或类似的东西
答案 1 :(得分:1)
marc_s提到客户端代理,可以通过Silverlight项目中的service references生成。生成的代理足够好,并为运行Silverlight端的请求提供异步模型;那些看起来很像远程程序调用。
另一种方法是直接使用更精简(但可能更高级?)的渠道工厂。可以找到一个简单的例子here。这两种方法都会为您处理大部分序列化细节。