详谈WCF返回值处理方法

开发 后端
虽然有许多人对WCF返回值有所顾虑,但在年复一年的不断发展中,他的安全性也在不断提高。保障WCF返回值的稳定性是完全有可能的,但前提是要深入理解到底什么是WCF返回值。

WCF返回值集成开发环境包括许多新的和改进的用于提高工作效率的功能。IDE 还进行了重新设计,从而向开发人员提供对.NET Framework 组件的直接访问。下面就这个问题进行解释说明。

保留要进行流处理的数据的参数必须是方法中的唯一参数。如:要对输入消息进行处理,则该操作必须正好具有一个输入参数。同样,如果要对输出消息进行流处理,则该操作鼻息正好具有一个输出参数或一个WCF返回值。#t#

参数和返回值的类型中至少有一个必须是Stream,Message或IXmlSerializable.

2.适用场景

  1. [ServiceContract]  
  2.  
  3. interface IMyContract  
  4.  
  5. {  
  6.  
  7. [OperationContract]  
  8.  
  9. Stream StreamReply1( );  
  10.  
  11. [OperationContract]  
  12.  
  13. void StreamReply2(out Stream stream);  
  14.  
  15. [OperationContract]  
  16.  
  17. void StreamRequest(Stream stream);  
  18.  
  19. [OperationContract(IsOneWay = true)]  
  20.  
  21. void OneWayStream(Stream stream);  
  22.  

3. 流处理机制在特定的绑定协议中才能使用,目前是BasicHttpBinding,NetTcpBinding,和NetNamedPipeBinding支持流处理模型。但是在默认情况下,WCF禁止流处理模式。
流传输模式使用TransferMode进行配置,TransferMode为枚举类型:

  1. public enum TransferMode  
  2. {Buffered = 0 ,Streamed =1,StreamedRequest =2,StreamedResponse =3 }  

4.WCF返回值配置文件中定义流传输模式:

  1. <basicHttpBinding>   
  2. <binding name="basicHttpBinding" receiveTimeout="10:10:10" transferMode="Streamed"   
  3. maxReceivedMessageSize="200000" />   
  4. </basicHttpBinding>   
  5. <netTcpBinding>   
  6. <binding name="netTcpBinding" receiveTimeout="10:10:10" transferMode="Streamed" maxReceivedMessageSize="200000" /> </netTcpBinding> 
责任编辑:chenqingxiang 来源: 广东人民出版社
相关推荐

2010-03-02 16:50:34

WCF返回值

2009-12-08 15:52:10

WCF回调

2009-09-07 03:07:11

C# Main方法

2009-12-23 10:34:15

ADO.NET 批处理

2021-08-13 11:31:23

HTTP

2009-12-25 17:21:13

ADO返回值

2010-07-09 13:20:37

HART协议

2010-07-21 10:32:05

Perl函数返回值

2009-11-17 16:16:59

PHP递归函数

2023-08-07 14:52:33

WindowsExplorer进程

2022-02-23 13:31:26

RVO编译器优化

2021-12-19 23:58:51

Golang语言返回值

2009-12-21 16:52:02

WCF序列化

2023-12-05 14:10:00

接口可读性

2022-03-11 09:35:30

插件Node.jsC 语言

2011-04-18 14:04:40

ContextMenuSubMenuListView

2021-08-06 14:35:26

鸿蒙HarmonyOS应用

2010-02-24 09:59:19

WCF服务异步代理

2010-07-20 11:37:00

Perl函数返回值

2022-07-06 07:08:58

CPythonPython返回值
点赞
收藏

51CTO技术栈公众号