技术开发 频道

使用定制WCF MessageEncoder进行编码



【IT168 专稿】

本文将讨论一下WCF MessageEncoder的设计和它在应用开发中的角色和地位。
一、什么是MessageEncoder
    一般情况下,MessageEncoder被使用在传输通道(Channel)上,虽然MessageEncoder可以被使用在通道栈的任何地方。但MessageEncoder经常被用作进行字节转换,以克服WCF消息类在传输数据时的缺陷。

    一般来说,在通道中传输的字节是以多用途Mail扩展(MIME)格式形式存在的。对MIME的支持是一个WCF基石。WCF还可以建立基于SOAP协议进行交互的系统。事实上,WCF的功能足可以处理多种SOAP版本以及不同的XML数据格式。而MessageEncoder正在起来了在不同文件格式之间进行转换的功能。

    既然MessageEncoder支持所有被WCF支持的格式内容或协议,那么为什么要建立自己的MessageEncoder呢?

二、为什么建立自己的MessageEncoder

    我们可以假设,并不是所有通过通道传输的数据都能很好地被分类和打包。因此,建立一个用于处理这些数据的Message类可以进行一些定制的处理。定制处理可以承担对数据的加密和解密。
    建立自己的MessageEncoder的其他原因是我们可以想在整个通道栈里使用一个定制的Message类,或是当我们建立一个Message类时对这些输入数据进行转换。
    无论我们写自己的MessageEncoder类的目的是什么,我们都可以使用同样的规则和工具集。现在,我们将要实现一个MessageEncoder,并给出相应的代码供读者进行参考。
0
相关文章