using System.Xml.Serialization;
public string Message { get; set; }
static void XmlDocumentLoadTest()
char nonPrintableChar = (char)29;
string xmlContent = $"<root>{nonPrintableChar}Hello World{nonPrintableChar}</root>";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlContent);
Console.WriteLine("XmlDocumentLoadTest :" + e.Message);
static void XmlDocumentCreateTest()
char nonPrintableChar = (char)29;
XmlDocument xmlDoc = new XmlDocument();
XmlElement rootElement = xmlDoc.CreateElement("root");
XmlElement messageElement = xmlDoc.CreateElement("message");
messageElement.InnerText = $"{nonPrintableChar}test{nonPrintableChar}";
rootElement.AppendChild(messageElement);
xmlDoc.AppendChild(rootElement);
Console.WriteLine(xmlDoc.InnerXml);
Console.WriteLine("XmlDocumentCreateTest :" + e.Message);
static void XmlParserTest()
char nonPrintableChar = (char)29;
MyClass myObject = new MyClass
Message = $"Hello{nonPrintableChar}World"};
string xmlContent = SerializeToXml(myObject);
Console.WriteLine("XmlParser (Content):" + xmlContent);
MyClass deserializedObject = DeserializeFromXml<MyClass>(xmlContent);
Console.WriteLine("XmlParserTest: " + e.Message);
static string SerializeToXml<T>(T obj)
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (StringWriter writer = new StringWriter())
serializer.Serialize(writer, obj);
return writer.ToString();
static T DeserializeFromXml<T>(string xmlContent)
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (StringReader reader = new StringReader(xmlContent))
return (T)serializer.Deserialize(reader);