2016-05-24 1 views
0

Existe-t-il un moyen d'accéder au nom de l'élément en erreur (ou au nom DataMember défini dans DataAnnotation de l'élément). Cela ne détient pas la valeur correcte lors de la désérialisation d'un objet via le DataContractSerializer? Par exemple, le DataContract suivant et xml génèrent l'erreur ci-dessous, si elle est exécutée via le deserializaer. Par exemple:DataContractSerializer - Chaîne d'entrée incorrecte dans l'erreur de format

"La chaîne d'entrée n'était pas au format correct" car aucune valeur n'était disponible pour un élément "IsRequired". Comment puis-je avoir accès au nom de propriété "Amount" ou au nom de membre "Amount" (l'un ou l'autre ne me dérange pas) de l'exception qui sera déclenchée, pour que je puisse signaler l'erreur sur l'élément " montant » afin que le message d'erreur je crée est pas "large"

DataContract

<DataContract(NameSpace:="http://tempuri.org/blahblah")> 
Public Class [Account] 
    ... 
    <DataMember(IsRequired:=True, Order:=11, Name:="Amount")> Public [Amount] As Decimal 
End Class 

XML à passer

<Account> 
    ... 
    <Amount></Amount> 
</Account> 

erreur complète signalé au cours sérialisation

There was an error deserializing the object of type MyProjectName.Account. Input string was not in a correct format. 

Répondre

0

Vérifier l'exception de InnerException (voir Error deserializing the object pour un exemple) jeté, ou peut-être soit de Data property exception.

+0

Malheureusement, il n'y a aucun détail supplémentaire dans le champ de données, et ont été à travers toutes les propriétés visibles de l'exception et innerexception sans le trouver disponible pour utilisation. – Mark