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