Sdílet prostřednictvím


MessageEncoderFactory Třída

Definice

Abstraktní základní třída, která představuje továrnu pro vytváření kodérů zpráv, které mohou číst zprávy ze streamu a zapisovat je do datového proudu pro různé typy kódování zpráv.

public ref class MessageEncoderFactory abstract
public abstract class MessageEncoderFactory
type MessageEncoderFactory = class
Public MustInherit Class MessageEncoderFactory
Dědičnost
MessageEncoderFactory

Příklady

Následující kód ukazuje, jak napsat třídu, která je odvozena z 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;
        }
    }
}

Poznámky

Kódování je proces transformace zprávy na posloupnost bajtů. Dekódování je reverzní proces.

Tuto třídu použijte, pokud chcete implementovat vlastní kodér zpráv. Pokud chcete implementovat vlastní kodér zpráv, musíte poskytnout vlastní implementace následujících tří abstraktních základních tříd:

Encoder Přepište, aby se vrátila instance vlastního MessageEncoderobjektu . Pak zřetěďte vlastní MessageEncoderFactory sadu elementů vazby, která se používá ke konfiguraci služby nebo klienta přepsáním CreateMessageEncoderFactory metody pro vrácení instance této továrny. Další informace o vlastních kodérech naleznete v tématu Přenos dat a serializace.

Konstruktory

MessageEncoderFactory()

Inicializuje novou instanci MessageEncoderFactory třídy.

Vlastnosti

Encoder

Při přepsání v odvozené třídě získá kodér zpráv, který je vytvořen továrnou.

MessageVersion

Při přepsání v odvozené třídě získá verzi zprávy, která se používá kodéry vytvořené továrnou ke kódování zpráv.

Metody

CreateSessionEncoder()

Vrátí kodér zpráv, který lze použít ke korelaci zpráv ve výměnách založených na relacích.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro