Mat*_*oSp 6 wcf arguments web-services byref
我最近看到一个WCF服务通过ref参数声明操作合同.
我不知道为什么要做出这样的设计决定(操作无效),而且,根据我的WCF知识,我无法说这是否是一个好的做法.或者如果这不相关.
你怎么看?
小智 5
但是,根据此Microsoft文章,WCF调用的行为与远程过程调用完全相同,并且ByRef参数可用于返回数据: -
http://msdn.microsoft.com/en-us/library/ms733070.aspx
请参阅以下部分:Out和Ref Parameters
在大多数情况下,您可以在参数(Visual Basic中的ByVal)和out和ref参数(Visual Basic中的ByRef)中使用.因为out和ref参数都指示从操作返回数据,所以操作签名(如下所示)指定即使操作签名返回void也需要请求/回复操作.
WCF 不是“远程对象调用”方法或任何东西 - 它是纯粹的消息传递。因此,拥有“by-ref”参数可能会编译,但它实际上不会做任何有用的事情。
在您的客户端上,您有一个带有您调用的参数的方法。然后,WCF 运行时拦截该调用,将参数和所需的任何其他信息打包到消息中,序列化该消息(转换为文本或二进制 XML),并通过线路将该消息发送到服务器。
然后,服务器将消息反序列化回一组参数,然后服务器上的调度程序组件将实例化服务类,并使用消息中的参数调用该服务类实例上的适当方法。
整个故事是从服务器发回的回复开始的。
但再说一遍:客户端和服务器之间交换的只是一条序列化消息——“按引用”创建参数绝对没有意义——最终它不可能是按引用参数。服务器和客户端是完全独立的世界,完全独立的对象和类——它们只是在网络上看起来是一样的。
因此,我认为编写 WCF 方法的人并没有理解 WCF 消息传递的原理,而是被 WCF 的感觉所吸引 - 就像只是一个方法调用。但最终它实际上不仅仅是一个方法调用。
| 归档时间: |
|
| 查看次数: |
10173 次 |
| 最近记录: |