Błędy klasy 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 przewodniku Wprowadzenie, z dodatkowym kodem dodanym do usługi w celu przekonwertowania wyjątku wewnętrznego na błąd. Klient próbuje wykonać dzielenie przez zero, aby wymusić błąd w usłudze.
Uwaga
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. XmlSerializerFormatAttribute Ponadto parametr służy do włączania serializacji przy użyciu klasy XmlSerializer. Właściwość jest ustawiona SupportFaultstrue
na ten atrybut, który instruuje serializator do XmlSerializer 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 serwera proxy klienta należy zastosować flagę /UseSerializerForFaults do narzędzia ServiceModel Metadata Tool (Svcutil.exe).
Aby skonfigurować, skompilować i uruchomić przykład
Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.
Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).
Aby uruchomić przykład w konfiguracji pojedynczej lub między maszynami, postępuj zgodnie z instrukcjami w temacie Uruchamianie przykładów programu Windows Communication Foundation.