Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O exemplo UseAndStyle demonstra como usar as propriedades Use e Style no XmlSerializerFormatAttribute e no DataContractFormatAttribute. Essas propriedades afetam a forma como as mensagens são formatadas. Por padrão, o corpo da mensagem é formatado com o estilo definido como Document. Essas configurações podem ser especificadas no nível do contrato de serviço ou no nível do contrato de operação.
Observação
O procedimento de instalação e as instruções de build para este exemplo estão localizados no final deste tópico.
A Style propriedade style determina como os metadados WSDL do serviço são formatados. Os valores possíveis são Document, e Rpc. RPC significa que a representação WSDL de mensagens trocadas por uma operação contém parâmetros como se fosse uma chamada de procedimento remoto. A seguir, é mostrado um exemplo.
<wsdl:message name="IUseAndStyleCalculator_Add_InputMessage">
<wsdl:part name="n1" type="xsd:double"/>
<wsdl:part name="n2" type="xsd:double"/>
</wsdl:message>
Definir o estilo Document significa que a representação WSDL contém um único elemento que representa o documento que é trocado por uma operação, conforme mostrado no exemplo a seguir.
<wsdl:message name="IUseAndStyleCalculator_Add_InputMessage">
<wsdl:part name="parameters" element="tns:Add"/>
</wsdl:message>
A Use propriedade determina o formato da mensagem. Os valores possíveis são Literal e Encoded; o valor padrão é Literal. Literal significa que a mensagem é uma instância literal do esquema no WSDL, conforme mostrado no exemplo de Documento/Literal a seguir.
<Add xmlns="http://Microsoft.ServiceModel.Samples">
<n1>100</n1>
<n2>15.99</n2>
</Add>
Codificado significa que os esquemas no WSDL são especificações abstratas codificadas de acordo com as regras encontradas na seção SOAP 1.1 5. Veja a seguir um exemplo RPC/Codificado.
<q1:Add xmlns:q1="http://Microsoft.ServiceModel.Samples">
<n1 xsi:type="xsd:double" xmlns="">100</n1>
<n2 xsi:type="xsd:double" xmlns="">15.99</n2>
</q1:Add>
O Perfil Básico WS-I 1.0 proíbe o uso de Encoded, e você só deve usá-lo quando necessário para serviços legados. O Encoded formato da mensagem só está disponível ao usar o XmlSerializer.
Para permitir que você veja as mensagens que estão sendo enviadas e recebidas, este exemplo é baseado no rastreamento e no registro em log de mensagens. A configuração do serviço e o código-fonte foram modificados para habilitar e utilizar o rastreamento e o registro em log de mensagens. Além disso, ela WSHttpBinding foi configurada sem segurança, portanto, as mensagens registradas podem ser exibidas em um formato não criptografado. Os logs de rastreamento resultantes (System.ServiceModel.e2e e Message.log) devem ser exibidos usando a Ferramenta visualizador de rastreamento de serviço (SvcTraceViewer.exe). Os rastreamentos são configurados para serem criados na pasta C:\LOGS. Crie a pasta antes de executar o exemplo. Para exibir o conteúdo da mensagem na ferramenta Visualizador de Rastreamento, selecione Mensagens nos painéis esquerdo e direito da ferramenta.
O código a seguir mostra o contrato de serviço com a Use propriedade definida OperationFormatUse e o formato do corpo da mensagem alterado do padrão OperationFormatStyle para Document.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples"),
XmlSerializerFormat(Style = OperationFormatStyle.Rpc,
Use = OperationFormatUse.Encoded)]
public interface IUseAndStyleCalculator
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}
Para ver a diferença entre as diferentes Use e Style as configurações, modifique-as no serviço, regenere o cliente, execute o exemplo e examine o arquivo c:\logs\message.logs com a ferramenta Visualizador de Rastreamento de Serviço. Observe também o impacto nos metadados exibindo http://localhost/ServiceModelSamples/service.svc?wsdl. Os metadados dos serviços normalmente são divididos em várias páginas. A página principal do wsdl contém as associações WSDL, mas exibe http://localhost/ServiceModelSamples/service.svc?wsdl=wsdl0 para observar as definições de mensagem.
Para configurar, compilar e executar o exemplo
Verifique se você executou o Procedimento de instalação avulsa dos exemplos do Windows Communication Foundation.
Crie um diretório C:\LOGS para registrar mensagens em log. Conceda ao usuário permissões de gravação do Serviço de Rede para este diretório.
Para compilar a edição .NET do C# ou do Visual Basic da solução, siga as instruções contidas em Como Compilar as Amostras do Windows Communication Foundation.
Para executar o exemplo em uma configuração única ou entre máquinas, siga as instruções em Executando os exemplos do Windows Communication Foundation.