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)。
设置、生成和运行示例
若要生成 C# 或 Visual Basic .NET 版本的解决方案,请按照 Building the Windows Communication Foundation Samples中的说明进行操作。
要使用单机配置或跨计算机配置来运行示例,请按照运行 Windows Communication Foundation 示例中的说明进行操作。