MessageEncoderFactory Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Uma classe base abstrata que representa a fábrica para produzir codificadores de mensagens capazes de ler mensagens de um fluxo e escrevê-las num fluxo para vários tipos de codificação de mensagens.
public ref class MessageEncoderFactory abstract
public abstract class MessageEncoderFactory
type MessageEncoderFactory = class
Public MustInherit Class MessageEncoderFactory
- Herança
-
MessageEncoderFactory
Exemplos
O código seguinte mostra como escrever uma classe derivada de 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;
}
}
}
Observações
A codificação é o processo de transformar uma mensagem numa sequência de bytes. A decodificação é o processo inverso.
Use esta classe se quiser implementar um codificador de mensagens personalizado. Para implementar o seu próprio codificador de mensagens personalizado, deve fornecer implementações personalizadas das seguintes três classes base abstratas:
Substitua o método Encoder para devolver uma instância da sua classe personalizada MessageEncoder. Depois liga o teu personalizado MessageEncoderFactory à pilha de elementos de ligação usada para configurar o serviço ou cliente, sobrescrevendo o CreateMessageEncoderFactory método para devolver uma instância desta fábrica. Para mais informações sobre codificadores personalizados, consulte Transferência de Dados e Serialização.
Construtores
| Name | Description |
|---|---|
| MessageEncoderFactory() |
Inicializa uma nova instância da MessageEncoderFactory classe. |
Propriedades
| Name | Description |
|---|---|
| Encoder |
Quando é sobreposto numa classe derivada, obtém o codificador de mensagens produzido pela fábrica. |
| MessageVersion |
Quando sobrescrito numa classe derivada, obtém a versão da mensagem que é usada pelos codificadores produzidos pela fábrica para codificar mensagens. |
Métodos
| Name | Description |
|---|---|
| CreateSessionEncoder() |
Devolve um codificador de mensagens que pode ser usado para correlacionar mensagens em trocas baseadas em sessões. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |