J'ai une application de console de test, où j'essaie de faire fonctionner la sérialisation et la désérialisation pour stocker des données dans un fichier xml. La méthode serialize fonctionne correctement, mais la désérialisation ne semble pas fonctionner. Il ne produit aucune erreur mais il ne charge pas mes données à partir du fichier .xml. Quelqu'un sait pourquoi?C# La désérialisation ne fonctionne pas?
class Program
{
static void Main(string[] args)
{
ArrayList siteList = new ArrayList();
DeserializeArray();
siteList.Add("Test 1");
siteList.Add("Test 2");
foreach (var item in siteList)
{
Console.WriteLine(item);
}
SerializeArray(siteList);
if (siteList.Contains("Test 2"))
{
Console.WriteLine("Test 2 exists!");
Console.Read();
}
}
public static void SerializeArray(ArrayList siteList)
{
XmlSerializer serializer = new XmlSerializer(typeof(ArrayList));
TextWriter textWriter = new StreamWriter("SiteList.xml");
serializer.Serialize(textWriter, siteList);
textWriter.Close();
}
static ArrayList DeserializeArray()
{
XmlSerializer deserializer = new XmlSerializer(typeof(ArrayList));
TextReader textReader = new StreamReader("SiteList.xml");
ArrayList siteList;
siteList = (ArrayList)deserializer.Deserialize(textReader);
textReader.Close();
return siteList;
}
}
}
cela ne supprime-t-il pas tout le point de la désérialisation? Je pensais que la désérialisation saisissait des données provenant d'une source. Je veux ajouter au fichier .xml existant au lieu d'en créer un nouveau à chaque fois, donc je ne devrais pas le désérialiser en premier? – karlstackoverflow
Si vous voulez ajouter à un XML existant oui, vous pouvez d'abord désérialiser - mais vous devez assigner le résultat à la variable - ce que vous n'avez pas fait: 'ArrayList siteList = DeserializeArray();' – BrokenGlass
http: // stackoverflow .com/questions/5931484/c-deserializing-but-not-added-to-previous-xml – karlstackoverflow