DataContractSerializer - 输入字符串格式错误

时间:2016-05-24 02:44:04

标签: .net wcf datacontractserializer

是否有办法访问错误元素的名称(或元素的DataAnnotation中定义的DataMember名称)。在通过DataContractSerializer反序列化对象期间,它不能保持正确的值吗?

例如,如果通过deserializaer运行,以下DataContract和xml将生成下面找到的错误。 “输入字符串的格式不正确”,因为“IsRequired”元素没有可用的值。

如何从将要引发的异常中访问属性名称“Amount”或数据管理名称“Amount”(任何一个我没有讨论),以便我可以在元素“Amount”上报告错误“所以我创建的错误信息不是那么”宽泛“

DataContract

<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.

1 个答案:

答案 0 :(得分:0)

检查抛出的异常<h:inputSecret />(有关示例,请参阅Error deserializing the object),或者可能是Data property例外。