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 executar a divisão por zero para forçar uma condição de erro no serviço.
Nota
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, 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, você deve aplicar o sinalizador /UseSerializerForFaults à ServiceModel Metadata Utility Tool (Svcutil.exe).
Para configurar, compilar e executar o exemplo
Certifique-se de ter executado o procedimento de instalação única para os exemplos do Windows Communication Foundation.
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.
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.