Aracılığıyla paylaş


MessageEncoderFactory Sınıf

Tanım

Bir akıştan iletileri okuyabilen ve çeşitli ileti kodlama türleri için bir akışa yazabilen ileti kodlayıcıları üretmek 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 işlemi ters işlemdir.

Özel 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 Encoder örneğinizi döndürmek için MessageEncoder'ı 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 bağlantı oluşturun. Özel kodlayıcılar hakkında daha fazla bilgi için bkz. Veri Aktarımı ve Serileştirme.

Oluşturucular

Name Description
MessageEncoderFactory()

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

Özellikler

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

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

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

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

Geçerli Objectbasit bir kopyasını oluşturur.

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

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

(Devralındığı yer: Object)

Şunlara uygulanır