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)。
设置、生成和运行示例
确保已为 Windows Communication Foundation 示例 执行One-Time 安装过程。
若要生成解决方案的 C# 或 Visual Basic .NET 版本,请按照 生成 Windows Communication Foundation 示例中的说明进行操作。
若要在单台计算机或跨计算机配置中运行示例,请按照 运行 Windows Communication Foundation 示例中的说明进行操作。