0

gars Hy,Importation XML avec XML-désérialiseur et la sérialisation avec DataContractSerializer

J'ai un grand projet distribué dans lequel j'utilise normalement DataContractSerializer (exigence, ne doit pas être changé).

Maintenant, je dois importer des fichiers XML (de Siemens TIA Openness) que je veux atteindre avec l'aide du XML-Deserializer. Jusqu'à présent, cela fonctionne très bien.

Maintenant, j'ai l'objet du XML importé au backend et j'ai besoin de le transférer au frontend avec DataContractSerializer.

Lorsque je fais cela, je reçois le CommunicationException (SocketConnection avorté). Je pense que c'est parce que j'ai ajouté le [System.Xml.Serialization.XmlTypeAttribut] et ainsi de suite à ma classe et à ses membres.

J'ai lu que l'on peut ajouter l'attribut XMLSerializer ET l'attribut DataContractSerializer à la classe. Cela ne change rien.

Maintenant, je pourrais utiliser un moyen de "remplacer" le XMLSerializer et utiliser le DataContractSerializer à la place.

Si quelqu'un pouvait m'aider, toutes les suggestions seraient très appréciées.

+0

J'utiliser un sniffer comme Wireshark ou Fiddler pour vérifier vos soupçons. Une socket ne se ferme que si un délai d'expiration s'est produit ou si des données incorrectes ont été envoyées via la connexion. Je soupçonne que la connexion nécessite des données xml et que les données ne sont pas xml, ou que la connexion se ferme avant que toutes les balises de fin soient reçues. – jdweng

Répondre

1

Votre question visant à sérialiser et à désérialiser une classe. Vous devez mettre en œuvre IXmlSerializable puis écraser ReadXml public void (lecteur XmlReader) WriteXml public void (lecteur XmlReader)