Errori di XmlSerializer

Nell'esempio di XmlSerializerFaults, viene illustrato come comunicare informazioni sugli errori da un servizio a un client usando XmlSerializer. L'esempio è basato su Introduzione, con altro codice aggiunto al servizio per convertire un'eccezione interna in un errore. Il client tenta di eseguire una divisione per zero per imporre una condizione di errore al servizio.

Nota

La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.

Il contratto della calcolatrice è stato modificato per includere un FaultContractAttribute, come illustrato nell'esempio di codice seguente. XmlSerializerFormatAttribute viene inoltre usato per abilitare la serializzazione usando XmlSerializer. La proprietà SupportFaults è impostata su true su questo attributo, che indica al serializzatore di usare XmlSerializer per la lettura e la scrittura degli errori.

[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);
}

Quando si genera codice per il proxy client, è necessario applicare il flag UseSerializerForFaults a ServiceModel Metadata Utility Tool (Svcutil.exe).

Per impostare, compilare ed eseguire l'esempio

  1. Assicurarsi di aver eseguito la Procedura di installazione singola per gli esempi di Windows Communication Foundation.

  2. Per compilare l'edizione in C# o Visual Basic .NET della soluzione, seguire le istruzioni in Building the Windows Communication Foundation Samples.

  3. Per eseguire l'esempio in un solo computer o tra computer diversi, seguire le istruzioni in Esecuzione degli esempi di Windows Communication Foundation.

Vedi anche