private void FormatText() { if (string.IsNullOrEmpty(txtXmlContent.Text)) { return; } var doc = new XmlDocument(); using (var ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(txtXmlContent.Text))) { using (var ms2 = Utility.RemoveUTF8BOM(ms)) { doc.Load(ms2); } } using (var ms = new MemoryStream()) { using (var uw = new Utf8XmlWriter(ms)) { if (!doc.ChildNodes.OfType <XmlDeclaration>().Any()) { uw.WriteStartDocument(); } doc.WriteTo(uw); uw.Flush(); } txtXmlContent.Text = System.Text.Encoding.UTF8.GetString(ms.GetBuffer()).Trim().Trim('\0'); } }
/// <summary> /// Serializes the given object as a UTF-8 encoded XML string. Any BOM is stripped from the XML string /// </summary> /// <param name="serializer"></param> /// <param name="o"></param> /// <returns></returns> internal static string NormalizedSerialize(XmlSerializer serializer, object o) { using (var ms = MemoryStreamPool.GetStream()) { using (var xw = new Utf8XmlWriter(ms)) { serializer.Serialize(xw, o); using (var ms2 = RemoveUTF8BOM(ms)) { using (var sr = new StreamReader(ms2)) { return(sr.ReadToEnd()); } } } } }