Dela via


Fel i XmlSerializer

XmlSerializerFaults-exemplet visar hur du kommunicerar felinformation från en tjänst till en klient med hjälp av XmlSerializer. Exemplet baseras på Komma igång med ytterligare kod som lagts till i tjänsten för att konvertera ett internt undantag till ett fel. Klienten försöker utföra division med noll för att framtvinga ett feltillstånd för tjänsten.

Anmärkning

Installationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.

Kalkylatorkontraktet har ändrats så att det inkluderar ett FaultContractAttribute som visas i följande exempelkod. XmlSerializerFormatAttribute Används också för att aktivera serialisering med hjälp av XmlSerializer. Egenskapen SupportFaults är inställd på true på det här attributet, vilket instruerar serialiseraren att använda XmlSerializer för att läsa och skriva fel.

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

När du genererar kod för klientproxyn måste du använda flaggan /UseSerializerForFaultsServiceModel Metadata Utility Tool (Svcutil.exe).

Så här konfigurerar du, skapar och kör exemplet

  1. Kontrollera att du har utfört One-Time installationsproceduren för Windows Communication Foundation-exempel.

  2. Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.

  3. Om du vill köra exemplet i en konfiguration med en eller flera datorer följer du anvisningarna i Köra Windows Communication Foundation-exempel.

Se även