Compartilhar via


MessageEncoderFactory Classe

Definição

Uma classe base abstrata que representa a fábrica para produzir codificadores de mensagem que podem ler mensagens de um fluxo e gravá-las em um fluxo para vários tipos de codificação de mensagem.

public ref class MessageEncoderFactory abstract
public abstract class MessageEncoderFactory
type MessageEncoderFactory = class
Public MustInherit Class MessageEncoderFactory
Herança
MessageEncoderFactory

Exemplos

O código a seguir mostra como escrever uma classe derivada de 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;
        }
    }
}

Comentários

A codificação é o processo de transformar uma mensagem em uma sequência de bytes. A decodificação é o processo inverso.

Use essa classe se quiser implementar um codificador de mensagens personalizado. Para implementar seu próprio codificador de mensagens personalizado, você deve fornecer implementações personalizadas das três classes base abstratas a seguir:

Substitua a Encoder para retornar uma instância do seu personalizado MessageEncoder. Em seguida, conecte seu personalizado MessageEncoderFactory para a pilha de elementos de associação usada para configurar o serviço ou o cliente substituindo o CreateMessageEncoderFactory método para retornar uma instância desta fábrica. Para obter mais informações sobre codificadores personalizados, consulte Transferência de Dados e Serialização.

Construtores

MessageEncoderFactory()

Inicializa uma nova instância da classe MessageEncoderFactory.

Propriedades

Encoder

Quando substituído em uma classe derivada, obtém o codificador de mensagem que é produzido pela fábrica.

MessageVersion

Quando substituído em uma classe derivada, obtém a versão da mensagem usada pelos codificadores produzidos pela fábrica para codificar mensagens.

Métodos

CreateSessionEncoder()

Retorna um codificador de mensagem que pode ser usado para correlacionar mensagens em trocas baseadas em sessão.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a