詳談WCF返回值處理方法
WCF返回值集成開發環境包括許多新的和改進的用于提高工作效率的功能。IDE 還進行了重新設計,從而向開發人員提供對.NET Framework 組件的直接訪問。下面就這個問題進行解釋說明。
保留要進行流處理的數據的參數必須是方法中的唯一參數。如:要對輸入消息進行處理,則該操作必須正好具有一個輸入參數。同樣,如果要對輸出消息進行流處理,則該操作鼻息正好具有一個輸出參數或一個WCF返回值。#t#
參數和返回值的類型中至少有一個必須是Stream,Message或IXmlSerializable.
2.適用場景
- [ServiceContract]
- interface IMyContract
- {
- [OperationContract]
- Stream StreamReply1( );
- [OperationContract]
- void StreamReply2(out Stream stream);
- [OperationContract]
- void StreamRequest(Stream stream);
- [OperationContract(IsOneWay = true)]
- void OneWayStream(Stream stream);
- }
3. 流處理機制在特定的綁定協議中才能使用,目前是BasicHttpBinding,NetTcpBinding,和NetNamedPipeBinding支持流處理模型。但是在默認情況下,WCF禁止流處理模式。
流傳輸模式使用TransferMode進行配置,TransferMode為枚舉類型:
- public enum TransferMode
- {Buffered = 0 ,Streamed =1,StreamedRequest =2,StreamedResponse =3 }
4.WCF返回值配置文件中定義流傳輸模式:
- <basicHttpBinding>
- <binding name="basicHttpBinding" receiveTimeout="10:10:10" transferMode="Streamed"
- maxReceivedMessageSize="200000" />
- </basicHttpBinding>
- <netTcpBinding>
- <binding name="netTcpBinding" receiveTimeout="10:10:10" transferMode="Streamed" maxReceivedMessageSize="200000" /> </netTcpBinding>