我目前正在开发一个带有 REST 绑定的 WCF 服务,预计该服务将由不是在 .NET 中开发且无法访问 C# 数据协定的系统访问。因此,调用者完全有可能创建将导致 SerializationException 的有效 XML。例如,整数或日期字段可能留空或设置为 null (i:nil="true")。
我希望能够向用户返回一条带有附加上下文的错误消息,准确地告诉他们 XML 的哪些部分无法反序列化。有没有一种干净的方法可以做到这一点?不幸的是,SerializationException 本身没有提供任何上下文。我能想到的就是从数据联系人中提取模式,并在尝试反序列化之前使用模式验证传入的 XML。这将需要我实现自定义序列化。有没有更好的办法?
模式方法的一个明显警告是它忽略了 JSON。