MessageEncoderFactory Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Abstrakcyjna klasa bazowa reprezentująca fabrykę do tworzenia koderów komunikatów, które mogą odczytywać komunikaty ze strumienia i zapisywać je w strumieniu dla różnych typów kodowania komunikatów.
public ref class MessageEncoderFactory abstract
public abstract class MessageEncoderFactory
type MessageEncoderFactory = class
Public MustInherit Class MessageEncoderFactory
- Dziedziczenie
-
MessageEncoderFactory
Przykłady
Poniższy kod pokazuje, jak napisać klasę pochodzącą z klasy 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;
}
}
}
Uwagi
Kodowanie to proces przekształcania komunikatu w sekwencję bajtów. Dekodowanie jest procesem odwrotnym.
Użyj tej klasy, jeśli chcesz zaimplementować niestandardowy koder komunikatów. Aby zaimplementować własny niestandardowy koder komunikatów, należy podać niestandardowe implementacje następujących trzech abstrakcyjnych klas bazowych:
Zastąpij element , Encoder aby zwrócić wystąpienie niestandardowego MessageEncoderelementu . Następnie podłączanie MessageEncoderFactory niestandardowego stosu elementu powiązania używanego do konfigurowania usługi lub klienta przez zastąpienie CreateMessageEncoderFactory metody w celu zwrócenia wystąpienia tej fabryki. Aby uzyskać więcej informacji na temat koderów niestandardowych, zobacz Transfer danych i Serializacja.
Konstruktory
MessageEncoderFactory() |
Inicjuje nowe wystąpienie klasy MessageEncoderFactory. |
Właściwości
Encoder |
Po zastąpieniu w klasie pochodnej pobiera koder komunikatów, który jest generowany przez fabrykę. |
MessageVersion |
Po zastąpieniu w klasie pochodnej pobiera wersję komunikatów używaną przez kodery produkowane przez fabrykę do kodowania komunikatów. |
Metody
CreateSessionEncoder() |
Zwraca koder komunikatów, który może służyć do korelowania komunikatów w wymianach opartych na sesji. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |