Partager via


Erreurs XmlSerializer

L’exemple XmlSerializerFaults illustre comment transmettre les informations relatives à une erreur d’un service à un client à l’aide de XmlSerializer. Il est basé sur la Prise en main. Quelques lignes de code sont ajoutées au service pour permettre la conversion d’une exception interne en erreur. Le client tente d'effectuer une opération de division par zéro pour imposer la génération d'une erreur sur le service.

Notes

La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent à la fin de cette rubrique.

Le contrat de calculatrice a été modifié afin d'y inclure un FaultContractAttribute, tel qu'illustré dans l'exemple de code suivant. En outre, XmlSerializerFormatAttribute est utilisé pour activer la sérialisation à l'aide de XmlSerializer. La propriété SupportFaults a la valeur true dans cet attribut, ce qui demande au sérialiseur d'utiliser XmlSerializer pour lire et écrire les erreurs.

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

Lorsque vous générez le code pour le proxy client, vous devez appliquer l’indicateur /UseSerializerForFaults à ServiceModel Metadata Utility Tool (Svcutil.exe).

Pour configurer, générer et exécuter l'exemple

  1. Assurez-vous d’avoir effectué la Procédure d’installation unique pour les exemples Windows Communication Foundation.

  2. Pour générer l’édition C# ou Visual Basic .NET de la solution, conformez-vous aux instructions figurant dans Building the Windows Communication Foundation Samples.

  3. Pour exécuter l’exemple dans une configuration à un ou plusieurs ordinateurs, conformez-vous aux instructions figurant dans la rubrique Exécution des exemples Windows Communication Foundation.

Voir aussi