XSDVisualizer/XSDVisualiser/Utils/Serialization.cs
2025-10-18 16:30:38 +02:00

37 lines
1.0 KiB
C#

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>(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)
{
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;
}
}
}