Aracılığıyla paylaş


MessageEncoderFactory Sınıf

Tanım

Bir akıştan iletileri okuyabilen ve çeşitli türlerde ileti kodlaması için bir akışa yazabilen ileti kodlayıcıları oluşturmak için fabrikayı temsil eden soyut bir temel sınıf.

public ref class MessageEncoderFactory abstract
public abstract class MessageEncoderFactory
type MessageEncoderFactory = class
Public MustInherit Class MessageEncoderFactory
Devralma
MessageEncoderFactory

Örnekler

Aşağıdaki kod, öğesinden MessageEncoderFactorytüretilen bir sınıfın nasıl yazıldığını gösterir:

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;
        }
    }
}

Açıklamalar

Kodlama, bir iletiyi bayt dizisine dönüştürme işlemidir. Kod çözme ters işlemdir.

Özel bir ileti kodlayıcı uygulamak istiyorsanız bu sınıfı kullanın. Kendi özel ileti kodlayıcınızı uygulamak için aşağıdaki üç soyut temel sınıfın özel uygulamalarını sağlamanız gerekir:

Özel MessageEncoderörneğinizi döndürmek için öğesini Encoder geçersiz kılın. Ardından, bu fabrikanın bir örneğini döndürmek için yöntemini geçersiz kılarak CreateMessageEncoderFactory hizmeti veya istemciyi yapılandırmak için kullanılan bağlama öğesi yığınına özel MessageEncoderFactory öğenizi bağlayın. Özel kodlayıcılar hakkında daha fazla bilgi için bkz. Veri Aktarımı ve Serileştirme.

Oluşturucular

MessageEncoderFactory()

MessageEncoderFactory sınıfının yeni bir örneğini başlatır.

Özellikler

Encoder

Türetilmiş bir sınıfta geçersiz kılındığında, fabrika tarafından üretilen ileti kodlayıcısını alır.

MessageVersion

Türetilmiş bir sınıfta geçersiz kılındığında, iletileri kodlamak için fabrika tarafından üretilen kodlayıcılar tarafından kullanılan ileti sürümünü alır.

Yöntemler

CreateSessionEncoder()

Oturum tabanlı exchange'lerde iletileri ilişkilendirmek için kullanılabilecek bir ileti kodlayıcı döndürür.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır