XmlSerializer-Fehler
Im XmlSerializerFaults-Beispiel wird veranschaulicht, wie Fehlerinformationen von einem Dienst zu einem Client mit XmlSerializer übermittelt werden. Das Beispiel basiert auf Erste Schritte. Dem Dienst wurde dabei zusätzlicher Code hinzugefügt, um eine interne Ausnahme in einen Fehler zu konvertieren. Der Client versucht, eine Division durch 0 (null) auszuführen, um einen Fehlerzustand beim Dienst zu erzwingen.
Hinweis
Die Setupprozedur und die Buildanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.
Der Rechnervertrag wurde geändert, um ein FaultContractAttribute einzuschließen, wie im folgenden Beispielcode gezeigt. Darüber hinaus wird das XmlSerializerFormatAttribute verwendet, um die Serialisierung mit XmlSerializer zu aktivieren. Die SupportFaults-Eigenschaft wird für dieses Attribut auf true
festgelegt, wodurch das Serialisierungsprogramm angewiesen wird, XmlSerializer zum Schreiben und Lesen von Fehlern zu verwenden.
[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);
}
Beim Generieren von Code für den Clientproxy müssen Sie das Flag /UseSerializerForFaults auf das ServiceModel Metadata Utility Tool (Svcutil.exe)anwenden.
So können Sie das Beispiel einrichten, erstellen und ausführen
Stellen Sie sicher, dass Sie die Beispiele zum einmaligen Setupverfahren für Windows Communication Foundation ausgeführt haben.
Um die C#- oder Visual Basic .NET-Edition der Projektmappe zu erstellen, befolgen Sie die unter Building the Windows Communication Foundation Samplesaufgeführten Anweisungen.
Wenn Sie das Beispiel in einer Konfiguration mit einem Computer oder über Computer hinweg ausführen möchten, folgen Sie den Anweisungen unter Durchführen der Windows Communication Foundation-Beispiele.