有没有办法访问错误元素的名称(或元素的DataAnnotation中定义的DataMember名称) . 在通过DataContractSerializer反序列化对象期间,它不能保持正确的值?
例如,如果通过deserializaer运行,以下DataContract和xml将生成下面找到的错误 . “输入字符串格式不正确" because no value was available for a " 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 to be passed
<Account>
...
<Amount></Amount>
</Account>
Full error reported during serialization
There was an error deserializing the object of type MyProjectName.Account. Input string was not in a correct format.
1 回答
检查抛出的异常
InnerException
(例如,参见Error deserializing the object),或者可能是异常的Data property .