mit den DataContractSerializer kannst du Objekte nach XML serialisieren und speichern
Serialisieren:
var settings = new XmlWriterSettings { Indent = true, ConformanceLevel = ConformanceLevel.Auto }; var serializer = new DataContractSerializer(typeof(Country[])); using (XmlWriter xml = XmlWriter.Create("SerializedEntities/countries.xml", settings)) { if (xml != null) { xml.WriteStartDocument(); serializer.WriteObject(xml, result.Result.Countries); } }
Deserialisieren:
var dictionary = new Dictionary<string, string>(); var serializer = new DataContractSerializer(typeof(Country[])); Country[] countries; using (Stream result = File.Open("SerializedEntities/countries.xml", FileMode.Open)) { countries = (Country[])serializer.ReadObject(result); }
Schneller und effizienter ist der BinarySerializer. Er kommt auch mit mehr Datentypen klar. Nachteil ist jedoch das das Format nicht dokumentiert ist und sich somit nicht einfach mit einem Editor die Werte verändern lassen.
hi, Sharpserializer bietet noch einfachere Möglichkeit Properties zu serialisieren. Du brauchst dich gar nicht um die Typendefinition zu kumern. Es geht einfach so:
// create fake obj var obj = createFakeObject();
// create instance of sharpSerializer // with standard constructor it serializes to xml // with overloaded constructor to its own binary format var serializer = new SharpSerializer();