MessageEncoderFactory Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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) |