2009-09-21 6 views

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