2010-05-14 15 views
1

J'ai une classe dans C# qui implémente Iserialzable.XML deserializer (Iserialzable)

J'utilise un XMLSerializer qui produit un XML à partir de l'instance de cette classe.

je reçois le code XML suivant:

<?xml version="1.0"?> 
<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <SessionConfiguration> 
    <RemoteMachineName>HV-BENDA</RemoteMachineName> 
    </SessionConfiguration> 
    <SessionsCredentialsList> 
    <CredentialsItem> 
     <User>test0</User> 
     <Password>Pa$$word1</Password> 
    </CredentialsItem> 
    <CredentialsItem> 
     <User>test1</User> 
     <Password>Pa$$word1</Password> 
    </CredentialsItem> 
    <CredentialsItem> 
     <User>test2</User> 
     <Password>Pa$$word1</Password> 
    </CredentialsItem> 
    <CredentialsItem> 
     <User>test3</User> 
     <Password>Pa$$word1</Password> 
    </CredentialsItem> 
    <CredentialsItem> 
     <User>test4</User> 
     <Password>Pa$$word1</Password> 
    </CredentialsItem> 
    </SessionsCredentialsList> 
    <TIME_OUT /> 
    <LOCAL_USERS_NUM>5</LOCAL_USERS_NUM> 
</Configuration> 

À un certain moment plus tard dans le code que j'utilise un nouveau XMLSerializer à deserial ce document XML.

et je reçois l'erreur suivante:

{ "Il y a une erreur dans le document XML (1, 1)."}

Exception interne:

{ "données au niveau racine est invalide Ligne 1, position 1. "}

Est-ce que quelqu'un sait que le problème pourrait être le problème?

Tous les meilleurs

+0

Je suppose un problème d'encodage. Comment stockez-vous le XML entre la sérialisation et la désérialisation? Dans une variable, en tant que fichier, dans une base de données ou ..? – stuartd

+0

'ISerializable' n'a rien à voir avec la sérialisation XML. Pouvez-vous poster le code pour la classe que vous essayez de sérialiser? Vous n'avez probablement pas les attributs 'System.Xml.Serialization' appropriés appliqués à vos propriétés. –

Répondre

0

Étrangement en utilisant InStream ne fonctionnait pas. L'utilisation de StreamReader et StreamWriter l'a résolu.

Merci

0

Utilisation du signe dollar pourrait causer des problèmes. Essayez d'utiliser &#36; à la place.