Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //using System.Xml.Serialization;
- void Main()
- {
- Root root = Root.Create();
- //spaces correct here
- string saveFile = SaveAndOpen(root);
- //spaces incorrect here
- Root reRoot = FromFile(saveFile);
- SaveAndOpen(reRoot);
- }
- public string SaveAndOpen(Root root)
- {
- XDocument doc = SerializeToXml(root);
- string saveFile = Path.GetTempFileName() + ".xml";
- doc.Save(saveFile);
- Process.Start(saveFile);
- return saveFile;
- }
- public static Root FromFile(string file)
- {
- XmlSerializer serializer = new XmlSerializer(typeof(Root));
- XmlReaderSettings settings = new XmlReaderSettings();
- XmlReader reader = XmlTextReader.Create(file, settings);
- Root root = serializer.Deserialize(reader) as Root;
- return root;
- }
- public XDocument SerializeToXml(Root obj)
- {
- XmlSerializer serializer = new XmlSerializer(typeof(Root));
- XDocument doc = new XDocument();
- using (var writer = doc.CreateWriter())
- {
- serializer.Serialize(writer, obj);
- }
- return doc;
- }
- [XmlRoot("root")]
- public class Root
- {
- [XmlText(typeof(string))]
- [XmlElement("tag", typeof(Tag))]
- public List<object> Elements { get; set; }
- //this is simply for the sake of example
- public static Root Create()
- {
- Root root = new Root();
- root.Elements.Add("Leading text ");
- root.Elements.Add(new Tag() { Text = "tag1" });
- root.Elements.Add(" ");
- root.Elements.Add(new Tag() { Text = "tag2" });
- return root;
- }
- public Root()
- {
- Elements = new List<object>();
- }
- }
- public class Tag
- {
- [XmlText]
- public string Text {get;set;}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement