MessageEncoderFactory 类  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
一个抽象基类,表示用于生成消息编码器的工厂,消息编码器可从流中读取消息和将消息写入流以进行多种类型的消息编码。
public ref class MessageEncoderFactory abstractpublic abstract class MessageEncoderFactorytype MessageEncoderFactory = classPublic MustInherit Class MessageEncoderFactory- 继承
- 
				MessageEncoderFactory
示例
下面的代码演示如何编写派生自 MessageEncoderFactory 的类:
public override bool IsContentTypeSupported(string contentType)
{
    if (base.IsContentTypeSupported(contentType))
    {
        return true;
    }
    if (contentType.Length == this.MediaType.Length)
    {
        return contentType.Equals(this.MediaType, StringComparison.OrdinalIgnoreCase);
    }
    else
    {
        if (contentType.StartsWith(this.MediaType, StringComparison.OrdinalIgnoreCase)
            && (contentType[this.MediaType.Length] == ';'))
        {
            return true;
        }
    }
    return false;
}
public class CustomTextMessageEncoderFactory : MessageEncoderFactory
{
    private MessageEncoder encoder;
    private MessageVersion version;
    private string mediaType;
    private string charSet;
    internal CustomTextMessageEncoderFactory(string mediaType, string charSet,
        MessageVersion version)
    {
        this.version = version;
        this.mediaType = mediaType;
        this.charSet = charSet;
        this.encoder = new CustomTextMessageEncoder(this);
    }
    public override MessageEncoder Encoder
    {
        get
        {
            return this.encoder;
        }
    }
    public override MessageVersion MessageVersion
    {
        get
        {
            return this.version;
        }
    }
    internal string MediaType
    {
        get
        {
            return this.mediaType;
        }
    }
    internal string CharSet
    {
        get
        {
            return this.charSet;
        }
    }
}
注解
编码是将消息转换为一个字节序列的过程。 解码是反向过程。
如果希望实现自定义消息编码器,请使用此类。 若要实现自己的自定义消息编码器,必须提供以下三个抽象基类的自定义实现:
重写 Encoder 以返回自定义 MessageEncoder 的实例。 然后通过重写 MessageEncoderFactory 方法返回此工厂的实例,将自定义 CreateMessageEncoderFactory 连接到用于配置服务或客户端的绑定元素堆栈。 有关自定义编码器的详细信息,请参阅 数据传输和序列化。
构造函数
| MessageEncoderFactory() | 初始化 MessageEncoderFactory 类的新实例。 | 
属性
| Encoder | 在派生类中重写时,获取工厂生成的消息编码器。 | 
| MessageVersion | 在派生类中重写时,获取工厂生成用于编码消息的编码器所使用的消息版本。 | 
方法
| CreateSessionEncoder() | 返回一个消息编码器,可用于关联基于会话的交换中的消息。 | 
| Equals(Object) | 确定指定对象是否等于当前对象。(继承自 Object) | 
| GetHashCode() | 作为默认哈希函数。(继承自 Object) | 
| GetType() | 获取当前实例的 Type。(继承自 Object) | 
| MemberwiseClone() | 创建当前 Object 的浅表副本。(继承自 Object) | 
| ToString() | 返回表示当前对象的字符串。(继承自 Object) |