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 z datového proudu 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 zadat vlastní implementace následujících tří abstraktních základních tříd:

Přepište Encoder, aby se vrátila instance vašeho vlastního objektu MessageEncoder. Potom zkonfigurujte 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 a serializace dat.

Konstruktory

Name Description
MessageEncoderFactory()

Inicializuje novou instanci MessageEncoderFactory třídy.

Vlastnosti

Name Description
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

Name Description
CreateSessionEncoder()

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

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

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

Vytvoří mělkou kopii aktuálního Object.

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

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

(Zděděno od Object)

Platí pro