WCF消息编码器相关应用代码解读

开发 开发工具
WCF消息编码器在实际程序开发中起着非常重要的作用。我们可以通过本文介绍的相关内容,能够充分掌握这一应用技巧。

WCF作为一个功能强大的.NET Framework 3.5重要组成部件,承担者包括通信在内容的多项功能的实现。其中,WCF消息编码器通过类型MessageEncoder表示,MessageEncoder是定义在System.ServiceModel.Channels命名空间下的一个抽象类。

从下面的定义中可以看出,MessageEncoder主要包含两种类型的操作:读消息和写消息,分别通过ReaderMessage和WriteMessage方法实现。此外,两个额外的方法,GetProperty<T>用于获取MessageEncoder相关的一些属性,IsContentTypeSupported用于判断MessageEncoder是否支持某种类型的MIME类型。

public abstract class MessageEncoder   
{   
//其他成员   
public virtual T GetProperty<T>() where T : class;   
public virtual bool IsContentTypeSupported(string contentType);   
public Message ReadMessage(ArraySegment<byte> buffer, 
BufferManager bufferManager);   
public Message ReadMessage(Stream stream, int maxSizeOfHeaders);    public abstract Message ReadMessage(ArraySegment<byte> buffer,
 BufferManager bufferManager, string contentType);   
public abstract Message ReadMessage(Stream stream, 
int maxSizeOfHeaders, string contentType);   
public abstract void WriteMessage(Message message, Stream stream);    public ArraySegment<byte> WriteMessage(Message message, 
int maxMessageSize, BufferManager bufferManager);   
public abstract ArraySegment<byte> WriteMessage(Message message, 
int maxMessageSize, BufferManager bufferManager, int messageOffset);   
public abstract string ContentType { get; }    public abstract string MediaType { get; }    public abstract MessageVersion MessageVersion { get; }   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

与上面介绍的3种类型的XmlDictionaryWriter/XmlDictionaryReader相对应,WCF消息编码器同样定义了MessageEncoder:TextMessageEncoder、BinaryMessageEncoder和MtomMessageEncoder三种MessageEncoder,它们分别封装了XmlUTF8TextWriter/XmlUTF8TextReader、XmlBinaryWriter/XmlBinaryReader和XmlMtomWriter/XmlMtomReader。

WCF定义了3个相应的工厂类:TextMessageEncoderFactory、BinaryMessageEncoderFactory和MtomMessageEncoderFactory用于创建相应的MessageEncoder。它们共同继承一个抽象类:System.ServiceModel.Channels.MessageEncoderFactory。通过只读属性Encoder得到相应的MessageEncoder。

public abstract class MessageEncoderFactory   
{   
//其他成员   
public abstract MessageEncoder Encoder { get; }   

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

以上就是我们为大家介绍的WCF消息编码器相关内容。

【编辑推荐】

  1. WCF通道形状相关内容深度剖析
  2. LitwareHR使用WCF正确实现方法详解
  3. WCF接口方法如何进行正确调用
  4. WCF Stream实际应用功能体验
  5. WCF行为扩展正确内容应用技巧分享
责任编辑:曹凯 来源: CSDN
相关推荐

2010-03-01 14:08:53

WCF编码器

2010-03-02 14:41:00

WCF行为控制

2010-03-01 09:19:10

WCF编码规范

2010-05-07 16:15:46

Windows Med

2021-03-22 10:52:13

人工智能深度学习自编码器

2021-11-02 20:44:47

数字化

2021-03-29 11:37:50

人工智能深度学习

2012-04-01 16:40:45

编码器

2012-04-10 16:55:22

PowerSmart编码器

2023-04-25 21:36:07

火山引擎

2010-03-02 18:01:07

WCF自定义消息筛选器

2010-02-25 17:57:26

WCF服务合同

2009-12-21 13:37:43

WCF消息交换

2010-02-24 09:38:58

WCF应用编码

2010-02-25 09:50:30

WCF路由截获消息

2011-09-30 15:45:39

PowerSmart编山东省齐鲁频道

2009-08-29 11:03:10

2010-02-22 17:21:02

WCF消息交换
点赞
收藏

51CTO技术栈公众号