Si je crée une classe en C#, comment puis-je le sérialiser/le désérialiser dans un fichier? Est-ce quelque chose qui peut être fait en utilisant des fonctionnalités intégrées ou est-ce un code personnalisé?Mappage d'un fichier classe et xml à l'aide de la sérialisation
1
A
Répondre
3
XmlSerializer
; Notez que les noms xml exacts peuvent être contrôlés par various attributes, mais tout ce que vous avez vraiment besoin est:
- un de type publique
- avec un constructeur par défaut
- et lecture/écriture des membres du public (idéalement propriétés)
Exemple:
using System;
using System.Xml;
using System.Xml.Serialization;
public class Person {
public string Name { get; set; }
}
static class Program {
static void Main() {
Person person = new Person { Name = "Fred"};
XmlSerializer ser = new XmlSerializer(typeof(Person));
// write
using (XmlWriter xw = XmlWriter.Create("file.xml")) {
ser.Serialize(xw, person);
}
// read
using (XmlReader xr = XmlReader.Create("file.xml")) {
Person clone = (Person) ser.Deserialize(xr);
Console.WriteLine(clone.Name);
}
}
}
0
Vous devez utiliser XmlSerializer classe. Les méthodes principales sont Serialize et Deserialize. Ils acceptent les flux, les lecteurs de texte \ écrivains et autres classes.
Exemple de code:
public class Program
{
public class MyClass
{
public string Name { get; set; }
}
static void Main(string[] args)
{
var myObj = new MyClass { Name = "My name" };
var fileName = "data.xml";
var serializer = new XmlSerializer(typeof(MyClass));
using (var output = new XmlTextWriter(fileName, Encoding.UTF8))
serializer.Serialize(output, myObj);
using (var input = new StreamReader(fileName))
{
var deserialized = (MyClass)serializer.Deserialize(input);
Console.WriteLine(deserialized.Name);
}
Console.WriteLine("Press ENTER to finish");
Console.ReadLine();
}
}
Questions connexes
- 1. Flex - Sérialisation XML et dé-sérialisation des structures d'objets imbriquées
- 2. Force les éléments XML à correspondre à l'ordre de classe lors de la sérialisation
- 3. Sérialisation de classe C++
- 4. La sérialisation XML est lente
- 5. Sérialisation XML et schéma sans xsd.exe
- 6. Tableau de sérialisation XML
- 7. sérialisation XML de la liste <T> - XML Racine
- 8. Défi de mappage xml à json
- 9. structure de données laide à la recherche java
- 10. Sérialisation XML C# Array
- 11. Mappage de collection à XML dans Castor
- 12. membres statiques et augmentation de la sérialisation
- 13. NHibernate mappage des données XML à la base de données
- 14. sortie xml de la classe
- 15. Problème sérialisation d'une classe contenant une collection en utilisant sérialisation XML
- 16. Boostez la sérialisation des caractères NVP et non-XML-element
- 17. Sérialisation d'objets Java en xml et en arrière (configuration XML)
- 18. Comment personnaliser la sérialisation XML WCF
- 19. WCF sérialisation XML
- 20. sérialisation classe dérivée personnalisée
- 21. XML sérialisation question
- 22. XML défini par l'utilisateur sérialisation
- 23. Mélange de sérialisation personnalisée et de base?
- 24. Lecture du fichier Xml de mappage généré par l'API FluentNHibernate
- 25. sérialisation XML, sans espace
- 26. Sérialisation de remoting à ressort et désérialisation
- 27. Ruby code pour sérialisation XML rapide et sale?
- 28. Xml Sérialisation dans une collection
- 29. Mappage LinQ XML vers un type générique
- 30. Mappage de «table avec une classe concrète» à l'aide du mappage automatique de Fluent NHibernate