XMLSerializer 错误

XmlSerializerFaults 示例演示如何使用 XmlSerializer 将错误信息从服务传达到客户端。 该示例基于入门指南,并且向服务添加了一些附加代码以将内部异常转换为错误。 客户端试图执行除数为零的运算以在服务上强制产生错误情况。

注意

本主题的最后介绍了此示例的设置过程和生成说明。

已将计算器协定修改为包括 FaultContractAttribute,如下面的示例代码所示。 另外,XmlSerializerFormatAttribute 还用于使用 XmlSerializer 启用序列化 对于此属性 (Attribute),SupportFaults 属性 (Property) 设置为 true,它指示序列化程序使用 XmlSerializer 读取和写入错误。

[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 元数据实用工具 (Svcutil.exe)

设置、生成和运行示例

  1. 请确保已执行 Windows Communication Foundation 示例的一次性安装过程

  2. 若要生成 C# 或 Visual Basic .NET 版本的解决方案,请按照 Building the Windows Communication Foundation Samples中的说明进行操作。

  3. 要使用单机配置或跨计算机配置来运行示例,请按照运行 Windows Communication Foundation 示例中的说明进行操作。

另请参阅