XmlContentWriter
Der folgender Code speichert eine Instanz als XML Format, die generierte XML Datei kann man als XNA Content wieder in einem Spiel benutzen. Normalerweise macht man so was nicht, aber im Falle eines Editors oder einer ähnlichen Anwendung ist das schon praktisch.
using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate; namespace arusslabs.Xna.Content.Pipeline { public static class XmlContentWriter { public static void Write(object value, string filePath) { XmlWriterSettings xmlSettings = new XmlWriterSettings(); xmlSettings.Indent = true; using (XmlWriter xmlWriter = XmlWriter.Create(filePath, xmlSettings)) IntermediateSerializer.Serialize(xmlWriter, value, null); } } }
Das einzige nervige ist, dass man die drei Klassen (ContentReader, ContentWriter und die Content Klasse selber) immer gleich halten muss, das heißt die Reihenfolge wie die Eigenschaften in der eigentlichen Klasse angeordnet sind und wie die gelesen oder geschrieben werden.