WCF Message類應(yīng)用基礎(chǔ)講解
要想充分的掌握WCF這一工具的應(yīng)用,首先需要對(duì)相關(guān)編程語言有一個(gè)深入的了解。在這里我們將會(huì)為大家介紹一下其中一個(gè)比較基礎(chǔ)的WCF Message類的基本應(yīng)用方式,打擊可以從中了解到一些知識(shí)。#t#
絕大多數(shù)情況下,我們都不會(huì)直接去使用WCF Message類,而是僅僅使用WCF服務(wù)編程模型中的數(shù)據(jù)契約、消息契約來描述輸入或者輸出消息。但在某些高級(jí)應(yīng)用中,我們需要對(duì)Message類進(jìn)行編程,如需要從別處創(chuàng)建輸出消息的內(nèi)容,而不是序列化.NET Framework類型,如可能從磁盤上的某個(gè)文件來創(chuàng)建輸出消息,在這種情況下,簡單的使用WCF中服務(wù)編程模型已經(jīng)不能滿足需要,而需要針對(duì)Message類進(jìn)行編程。
簡單來說,WCF Message類是一個(gè)通用的數(shù)據(jù)容器,在本質(zhì)上它完全模擬SOAP消息正文以及消息標(biāo)頭和屬性的集合,另外Message類中提供了一系列的方法用來創(chuàng)建消息、讀寫消息正文以及標(biāo)頭和屬性的集合。它的定義如下所示:
- public abstract class Message : IDisposable
- {
- // 標(biāo)頭集合
- public abstract MessageHeaders Headers { get; }
- protected bool IsDisposed { get; }
- public virtual bool IsEmpty { get; }
- public virtual bool IsFault { get; }
- // 屬性集合
- public abstract MessageProperties Properties { get; }
- public MessageState State { get; }
- // 消息版本
- public abstract MessageVersion Version { get; }
- public void Close();
- public MessageBuffer CreateBufferedCopy(int maxBufferSize);
- public static Message CreateMessage(MessageVersion version, string action);
- // 獲取正文
- public T GetBody<T>();
- public void WriteBody(XmlWriter writer);
- public void WriteMessage(XmlWriter writer);
- public void WriteStartBody(XmlWriter writer);
- public void WriteStartEnvelope(XmlDictionaryWriter writer);
- // 更多成員
- }
以上就是我們?yōu)榇蠹医榻BWCF Message類的相關(guān)概念。