using System; using System.IO; using System.Text; using System.Text.Json; using System.Xml.Serialization; namespace XSDVisualiser.Utils { public static class Serialization { public static string ToXml(T obj) { var serializer = new XmlSerializer(typeof(T)); var ns = new XmlSerializerNamespaces(); ns.Add(string.Empty, string.Empty); using var sw = new Utf8StringWriter(); serializer.Serialize(sw, obj, ns); return sw.ToString(); } public static string ToJson(T obj) { var options = new JsonSerializerOptions { WriteIndented = true, DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull }; return JsonSerializer.Serialize(obj, options); } private sealed class Utf8StringWriter : StringWriter { public override Encoding Encoding => Encoding.UTF8; } } }