MessageEncoderFactory Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Eine abstrakte Basisklasse, die die Factory zum Erzeugen von Nachrichtenencodern darstellt, die Nachrichten mit unterschiedlichen Codierungen aus einem Stream lesen und in einen Stream schreiben können.
public ref class MessageEncoderFactory abstract
public abstract class MessageEncoderFactory
type MessageEncoderFactory = class
Public MustInherit Class MessageEncoderFactory
- Vererbung
-
MessageEncoderFactory
Beispiele
Im folgenden Codebeispiel wird das Schreiben einer Klasse veranschaulicht, die von der MessageEncoderFactory abgeleitet wurde:
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;
}
}
}
Hinweise
Beim Codieren wird eine Nachricht in eine Bytefolge transformiert. Beim Decodieren wird dieser Prozess umgekehrt.
Mit dieser Klasse können Sie einen benutzerdefinierten Nachrichtenencoder implementieren. Um einen eigenen Nachrichtenencoder zu implementieren, müssen Sie benutzerdefinierte Implementierungen der folgenden drei abstrakten Basisklassen bereitstellen:
Überschreiben Sie den Encoder, um eine Instanz des benutzerdefinierten MessageEncoder zurückzugeben. Verknüpfen Sie anschließend die benutzerdefinierte MessageEncoderFactory mit dem Bindungselementstapel für die Konfiguration des Diensts oder des Clients durch Überschreiben der CreateMessageEncoderFactory-Methode, um eine Instanz der Factory zurückzugeben. Weitere Informationen zu benutzerdefinierten Encodern finden Sie unter "Datenübertragung und Serialisierung".
Konstruktoren
MessageEncoderFactory() |
Initialisiert eine neue Instanz der MessageEncoderFactory-Klasse. |
Eigenschaften
Encoder |
Beim Überschreiben in einer abgeleiteten Klasse wird der Nachrichtenencoder abgerufen, der von der Factory erzeugt wird. |
MessageVersion |
Beim Überschreiben in einer abgeleiteten Klasse wird die Nachrichtenversion abgerufen, mit der Nachrichten durch die von der Factory erzeugten Encoder codiert werden. |
Methoden
CreateSessionEncoder() |
Gibt einen Nachrichtenencoder zurück, mit dem Nachrichten in sitzungsbasierten Austauschprozessen korreliert werden können. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |