MessageHeaderAttribute 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.
Especifica que um membro de dados é um cabeçalho de mensagem SOAP.
public ref class MessageHeaderAttribute : System::ServiceModel::MessageContractMemberAttribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, AllowMultiple=false, Inherited=false)]
public class MessageHeaderAttribute : System.ServiceModel.MessageContractMemberAttribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, AllowMultiple=false, Inherited=false)>]
type MessageHeaderAttribute = class
inherit MessageContractMemberAttribute
Public Class MessageHeaderAttribute
Inherits MessageContractMemberAttribute
- Herança
- Derivado
- Atributos
Exemplos
O exemplo de código seguinte mostra a utilização de para MessageHeaderAttribute criar um cabeçalho SOAP para a mensagem de resposta com o Name, Namespace e MustUnderstand propriedades definidas para valores apropriados para este cabeçalho. O exemplo do código é seguido por um exemplo da mensagem quando enviada.
[MessageContract]
public class HelloResponseMessage
{
private string localResponse = String.Empty;
private string extra = String.Empty;
[MessageBodyMember(
Name = "ResponseToGreeting",
Namespace = "http://www.examples.com")]
public string Response
{
get { return localResponse; }
set { localResponse = value; }
}
[MessageHeader(
Name = "OutOfBandData",
Namespace = "http://www.examples.com",
MustUnderstand=true
)]
public string ExtraValues
{
get { return extra; }
set { this.extra = value; }
}
/*
The following is the response message, edited for clarity.
<s:Envelope>
<s:Header>
<a:Action s:mustUnderstand="1">http://HelloResponseMessage/Action</a:Action>
<h:OutOfBandData s:mustUnderstand="1" xmlns:h="http://www.examples.com">Served by object 13804354.</h:OutOfBandData>
</s:Header>
<s:Body>
<HelloResponseMessage xmlns="Microsoft.WCF.Documentation">
<ResponseToGreeting xmlns="http://www.examples.com">Service received: Hello.</ResponseToGreeting>
</HelloResponseMessage>
</s:Body>
</s:Envelope>
*/
}
<MessageContract> _
Public Class HelloResponseMessage
Private localResponse As String = String.Empty
Private extra As String = String.Empty
<MessageBodyMember(Name := "ResponseToGreeting", Namespace := "http://www.examples.com")> _
Public Property Response() As String
Get
Return localResponse
End Get
Set(ByVal value As String)
localResponse = value
End Set
End Property
<MessageHeader(Name := "OutOfBandData", Namespace := "http://www.examples.com", MustUnderstand:=True)> _
Public Property ExtraValues() As String
Get
Return extra
End Get
Set(ByVal value As String)
Me.extra = value
End Set
End Property
'
' The following is the response message, edited for clarity.
'
' <s:Envelope>
' <s:Header>
' <a:Action s:mustUnderstand="1">http://HelloResponseMessage/Action</a:Action>
' <h:OutOfBandData s:mustUnderstand="1" xmlns:h="http://www.examples.com">Served by object 13804354.</h:OutOfBandData>
' </s:Header>
' <s:Body>
' <HelloResponseMessage xmlns="Microsoft.WCF.Documentation">
' <ResponseToGreeting xmlns="http://www.examples.com">Service received: Hello.</ResponseToGreeting>
' </s:Body>
' </s:Envelope>
'
End Class
Observações
O MessageHeaderAttribute atributo permite-lhe mapear campos e propriedades de um tipo marcado com o MessageContractAttribute atributo para cabeçalhos de mensagens SOAP. O corpo ou propriedade pode ser de um tipo simples ou de tipo composto que pode ser serializado.
Para informações sobre como controlar a serialização do conteúdo de um corpo SOAP sem modificar o envelope padrão do SOAP, veja System.Runtime.Serialization.DataContractAttribute, Especificando Transferência de Dados em Contratos de Serviço e Utilizando Contratos de Dados.
Para mais informações sobre a criação de contratos de mensagem, consulte Utilização de Contratos de Mensagem.
A norma SOAP define os seguintes atributos que podem existir num cabeçalho:
ActorouRole(Actorem SOAP 1.1,Roleem SOAP 1.2)MustUnderstandRelay
O atributo Actor or Role especifica o URI do nó para o qual um dado cabeçalho é destinado. O MustUnderstand atributo especifica se o cabeçalho compreende o processamento do nó. O Relay atributo especifica se o cabeçalho deve ser retransmitido para nós downstream. Windows Communication Foundation (WCF) não realiza qualquer processamento destes atributos nas mensagens recebidas, exceto para o atributo MustUnderstand.
No entanto, pode-se ler e escrever estes atributos, mesmo que não sejam enviados por defeito. Podes definir os valores dos atributos de duas formas. Primeiro, pode-se alterar as Actorpropriedades , MustUnderstand e Relay sobre .MessageHeaderAttribute (Não existe propriedade Role – define a Actor propriedade e Role é passada se for usada a SOAP 1.2). Por exemplo:
A segunda forma de controlar estes atributos é tornando o tipo de cabeçalho desejado o parâmetro de tipo da MessageHeader<T> classe e usando o tipo resultante juntamente com o MessageHeaderAttribute. Depois usa as MessageHeader<T> propriedades programaticamente para definir os atributos SOAP. Por exemplo:
Se forem usados tanto os mecanismos de controlo dinâmico como o estático, as definições estáticas são o padrão, mas podem ser ultrapassadas usando o mecanismo dinâmico. Por exemplo:
É permitido criar cabeçalhos repetidos com controlo dinâmico de atributos. Por exemplo:
[MessageHeaderArray] public MessageHeader<Person> documentApprovers[];
No lado receptor, a leitura destes atributos SOAP só pode ser feita se for usada a classe genérica MessageHeader<T> . Examine o Actor, Relay ou MustUnderstand as propriedades de um cabeçalho do MessageHeader<T> tipo para descobrir as definições de atributos na mensagem recebida.
Quando uma mensagem é recebida e depois enviada de volta, as definições do atributo SOAP apenas fazem ida e volta para cabeçalhos desse MessageHeader<T> tipo.
Construtores
| Name | Description |
|---|---|
| MessageHeaderAttribute() |
Inicializa uma nova instância da MessageHeaderAttribute classe. |
Propriedades
| Name | Description |
|---|---|
| Actor |
Recebe ou define um URI que indica o nó para onde este cabeçalho está direcionado. Mapeia para o atributo do cabeçalho de papel quando o SOAP 1.2 é usado e para o atributo do cabeçalho do ator quando o SOAP 1.1 é utilizado. |
| HasProtectionLevel |
Quando anulado numa classe derivada, obtém um valor que indica se o membro tem um nível de proteção atribuído. (Herdado de MessageContractMemberAttribute) |
| MustUnderstand |
Especifica se o nó que desempenha a Actor função deve compreender este cabeçalho. Isto é mapeado para o |
| Name |
Especifica o nome do elemento que corresponde a este elemento. (Herdado de MessageContractMemberAttribute) |
| Namespace |
Especifica o espaço de nomes do elemento correspondente a este membro. (Herdado de MessageContractMemberAttribute) |
| ProtectionLevel |
Especifica se o membro deve ser transmitido as-is, assinado, ou assinado e encriptado. (Herdado de MessageContractMemberAttribute) |
| Relay |
Especifica se este cabeçalho deve ser retransmitido para nós a jusante. Isto é mapeado para o |
| TypeId |
Quando implementado numa classe derivada, obtém um identificador único para esta Attribute. (Herdado de Attribute) |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| GetHashCode() |
Devolve o código de hash para esta instância. (Herdado de Attribute) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsDefaultAttribute() |
Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
| Match(Object) |
Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface. (Herdado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |