Udostępnij przez


Błędy XmlSerializer

Przykład XmlSerializerFaults pokazuje, jak przekazać informacje o błędzie z usługi do klienta przy użyciu polecenia XmlSerializer. Przykład jest oparty na Getting Started, z dodanym do usługi dodatkowym kodem w celu przekonwertowania wyjątku wewnętrznego na błąd. Klient próbuje wykonać dzielenie przez zero, aby spowodować błąd w usłudze.

Uwaga / Notatka

Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.

Kontrakt kalkulatora został zmodyfikowany tak, aby zawierał element FaultContractAttribute , jak pokazano w poniższym przykładowym kodzie. Ponadto XmlSerializerFormatAttribute jest używane do włączania serializacji za pomocą XmlSerializer. Właściwość jest ustawiona na SupportFaults dla tego atrybutu, co instruuje serializator, aby użył true do odczytywania i zapisywania błędów.

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

Podczas generowania kodu dla klienta proxy należy zastosować flagę /UseSerializerForFaults do Narzędzia ServiceModel Metadata Utility (Svcutil.exe).

Aby skonfigurować, skompilować i uruchomić przykładowy program

  1. Upewnij się, że wykonano procedurę instalacji One-Time dla przykładów programu Windows Communication Foundation.

  2. Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w Kompilowanie przykładów Windows Communication Foundation.

  3. Aby uruchomić przykład w konfiguracji pojedynczej lub między maszynami, postępuj zgodnie z instrukcjami w Uruchamianie przykładów programu Windows Communication Foundation.

Zobacz także