XMLSerializer 错误

XmlSerializerFaults 示例演示如何使用 XmlSerializer 将错误信息从服务传达给客户端。 此示例基于 “入门”,向服务添加了一些附加代码,用于将内部异常转换为错误。 客户端尝试通过零进行除法,以强制服务进入错误状态。

注释

本示例的设置过程和生成说明位于本主题末尾。

已修改的计算器协议中包含了一个 FaultContractAttribute,如以下示例代码所示。 此外,XmlSerializerFormatAttribute 还用于通过 XmlSerializer 启用序列化。 将此属性的SupportFaults属性设置为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 示例 执行One-Time 安装过程。

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

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

另请参阅