MessageEncoderFactory Класс

Определение

Абстрактный базовый класс, представляющий фабрику для создания кодировщиков сообщений, которые могут читать сообщения из потока и записывать их в поток для различных типов кодирования сообщений.

public ref class MessageEncoderFactory abstract
public abstract class MessageEncoderFactory
type MessageEncoderFactory = class
Public 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)

Применяется к