Condividi tramite


Errori XmlSerializer

Nell'esempio XmlSerializerFaults viene illustrato come comunicare informazioni sugli errori da un servizio a un client tramite .XmlSerializer L'esempio si basa su Iniziare, con del codice aggiunto al servizio per convertire un'eccezione interna in un errore. Il client tenta di eseguire la divisione per zero per generare una condizione di errore nel servizio.

Annotazioni

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

Il contratto calcolatrice è stato modificato per includere un oggetto FaultContractAttribute come illustrato nel codice di esempio seguente. XmlSerializerFormatAttribute Viene inoltre usato per abilitare la serializzazione tramite .XmlSerializer La SupportFaults proprietà è impostata su true su su questo attributo, che indica al serializzatore di utilizzare XmlSerializer per la lettura e la scrittura di 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 allo strumento utilità metadati ServiceModel (Svcutil.exe).

Per configurare, compilare ed eseguire l'esempio

  1. Assicurati di aver eseguito la procedura di installazione di One-Time per gli esempi di Windows Communication Foundation.

  2. Per compilare l'edizione C# o Visual Basic .NET della soluzione, seguire le istruzioni in Compilazione degli esempi di Windows Communication Foundation.

  3. Per eseguire l'esempio in una configurazione con computer singolo o incrociato, seguire le istruzioni riportate in Esecuzione degli esempi di Windows Communication Foundation.

Vedere anche