Condividi tramite


MessageEncoderFactory Classe

Definizione

Classe base astratta che rappresenta la factory per produrre codificatori di messaggi che possono leggere messaggi da un flusso e scriverli in un flusso per vari tipi di codifica messaggi.

public ref class MessageEncoderFactory abstract
public abstract class MessageEncoderFactory
type MessageEncoderFactory = class
Public MustInherit Class MessageEncoderFactory
Ereditarietà
MessageEncoderFactory

Esempio

Nel codice seguente viene illustrato come scrivere una classe derivata da 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;
        }
    }
}

Commenti

La codifica è il processo di trasformazione di un messaggio in una sequenza di byte. La decodifica è il processo inverso.

Utilizzare questa classe se si desidera implementare un codificatore di messaggi personalizzato. Per implementare un codificatore di messaggi personalizzato, è necessario fornire implementazioni personalizzate delle tre classi base astratte seguenti:

Eseguire l'override di Encoder per restituire un'istanza del codificatore MessageEncoder personalizzato. Associare quindi il MessageEncoderFactory personalizzato allo stack dell'elemento di associazione utilizzato per configurare il servizio o il client eseguendo l'override del metodo CreateMessageEncoderFactory per restituire un'istanza di questa factory. Per altre informazioni sui codificatori personalizzati, vedere Trasferimento dei dati e serializzazione.

Costruttori

MessageEncoderFactory()

Inizializza una nuova istanza della classe MessageEncoderFactory.

Proprietà

Encoder

Quando sottoposto a override in una classe derivata, ottiene il codificatore di messaggi prodotto dalla factory.

MessageVersion

Quando sottoposto a override in una classe derivata, ottiene la versione del messaggio utilizzata dai codificatori prodotti dalla factory per codificare i messaggi.

Metodi

CreateSessionEncoder()

Restituisce un codificatore di messaggi che può essere utilizzato per correlare i messaggi negli scambi basati sulla sessione.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a