Partilhar via


Falhas do XmlSerializer

O exemplo XmlSerializerFaults demonstra como comunicar informações de erro de um serviço para um cliente usando o XmlSerializer. O exemplo é baseado na Introdução, com algum código adicional adicionado ao serviço para converter uma exceção interna em uma falha. O cliente tenta realizar divisão por zero para provocar um erro no serviço.

Observação

O procedimento de configuração e as instruções de compilação para este exemplo estão localizados no final deste tópico.

O contrato da calculadora foi modificado para incluir um componente FaultContractAttribute, conforme mostrado no código de exemplo a seguir. Além disso, o XmlSerializerFormatAttribute é usado para habilitar a serialização usando o XmlSerializer. A SupportFaults propriedade é definida como true neste atributo, que instrui o serializador a usar o XmlSerializer para falhas de leitura e gravação.

[XmlSerializerFormat(SupportFaults=true)]
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface ICalculator
{
    [OperationContract]
    int Add(int n1, int n2);

    [OperationContract]
    int Subtract(int n1, int n2);

    [OperationContract]
    int Multiply(int n1, int n2);

    [OperationContract]
    [FaultContract(typeof(MathFault))]
    int Divide(int n1, int n2);
}

Ao gerar código para o proxy do cliente, deve-se aplicar o flag /UseSerializerForFaults à ServiceModel Metadata Utility Tool (Svcutil.exe).

Para configurar, compilar e executar o exemplo

  1. Verifique se você executou o procedimento de instalação do One-Time para os exemplos do Windows Communication Foundation.

  2. Para criar a edição C# ou Visual Basic .NET da solução, siga as instruções em Criando os exemplos do Windows Communication Foundation.

  3. Para executar o exemplo em uma configuração de máquina única ou cruzada, siga as instruções em Executando os exemplos do Windows Communication Foundation.

Ver também