35 lines
930 B
C#

using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Xml.Serialization;
namespace XSDVisualiser.Utils;
public static class Serialization
{
private static readonly JsonSerializerOptions JsonOptions = new()
{
WriteIndented = true,
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
};
public static string ToXml<T>(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>(T obj)
{
return JsonSerializer.Serialize(obj, JsonOptions);
}
private sealed class Utf8StringWriter : StringWriter
{
public override Encoding Encoding => Encoding.UTF8;
}
}