1 // traffic_1
 2 
 3 using System;
 4 using System.Xml;
 5 using System.Xml.Serialization;
 6 
 7 [xml]
 8 public class Person
 9 {
10     public Person()
11     {
12     }
13     public Person(const string& name_) : name(name_)
14     {
15     }
16     public inline const string& Name() const
17     {
18         return name;
19     }
20     private string name;
21 }
22 
23 int main()
24 {
25     Person joe("Joe Coder");
26     XmlSerializationContext ctx;
27     ctx.SetFlag(XmlSerializationFlags.suppressMetadata);
28     Result<System.Xml.Element*> toXmlResult = joe.ToXml("person"ctx);
29     if (toXmlResult.Error())
30     {
31         Console.Error() << toXmlResult.GetErrorMessage() << "\n";
32         return 1;
33     }
34     System.Xml.Element* element = toXmlResult.Value();
35     System.Xml.Document document;
36     document.AppendChild(element);
37     System.Text.CodeFormatter formatter(Console.Out());
38     formatter.SetIndentSize(1);
39     Result<bool> writeResult = document.Write(formatter);
40     if (writeResult.Error())
41     {
42         Console.Error() << writeResult.GetErrorMessage() << "\n";
43         return 1;
44     }
45     Person person;
46     Result<bool> fromXmlResult = person.FromXml(document.DocumentElement());
47     if (fromXmlResult.Error())
48     {
49         Console.Error() << fromXmlResult.GetErrorMessage() << "\n";
50         return 1;
51     }
52     Console.Out() << person.Name() << "\n";
53     return 0;
54 }