【发布时间】:2016-05-24 02:44:03
【问题描述】:
有没有办法访问错误元素的名称(或在元素的 DataAnnotation 中定义的 DataMember 名称)。在通过 DataContractSerializer 反序列化对象期间,它的值不正确吗?
例如,如果通过反序列化程序运行,以下 DataContract 和 xml 将生成下面发现的错误。 “输入字符串的格式不正确”,因为“IsRequired”元素没有可用的值。
如何从将引发的异常中访问属性名称“Amount”或数据成员名称“Amount”(其中一个我没有大惊小怪),以便我可以报告错误在元素“Amount”上" 这样我创建的错误信息就不是那么“广泛”了
数据合约
<DataContract(NameSpace:="http://tempuri.org/blahblah")>
Public Class [Account]
...
<DataMember(IsRequired:=True, Order:=11, Name:="Amount")> Public [Amount] As Decimal
End Class
要传递的 XML
<Account>
...
<Amount></Amount>
</Account>
序列化过程中报告完整错误
There was an error deserializing the object of type MyProjectName.Account. Input string was not in a correct format.
【问题讨论】:
标签: .net wcf datacontractserializer