다음을 통해 공유


XMLSerializer 오류

샘플에서는 XmlSerializer를 사용하여 오류 정보를 서비스에서 클라이언트로 전달하는 방법을 보여 줍니다. 이 샘플은 시작에 기반을 두고 있으며 내부 예외를 오류로 변환하기 위해 일부 코드가 서비스에 추가되었습니다. 클라이언트는 서비스에서 오류 조건을 강제하기 위해 0으로 나누기를 시도합니다.

참고 항목

이 샘플의 설치 절차 및 빌드 지침은 이 항목의 끝부분에 나와 있습니다.

다음 샘플 코드와 같이 계산기 계약은 FaultContractAttribute를 포함하도록 수정되었습니다. 또한 XmlSerializerFormatAttribute를 사용한 serialization을 지원하도록 XmlSerializer를 사용합니다. 이 특성에 대해 SupportFaults 속성이 true로 설정되어 오류를 읽고 쓰는 데 XmlSerializer를 사용하도록 serializer에 지시합니다.

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

클라이언트 프록시에 대한 코드를 생성할 때 /UseSerializerForFaults 플래그를 ServiceModel Metadata 유틸리티 도구(Svcutil.exe)에 적용해야 합니다.

샘플을 설치, 빌드 및 실행하려면

  1. Windows Communication Foundation 샘플의 일회 설치 절차를 수행했는지 확인합니다.

  2. C# 또는 Visual Basic .NET 버전의 솔루션을 빌드하려면 Building the Windows Communication Foundation Samples의 지침을 따릅니다.

  3. 단일 컴퓨터 또는 다중 컴퓨터 구성에서 샘플을 실행하려면 Windows Communication Foundation 샘플 실행의 지침을 따릅니다.

참고 항목