35 lines
930 B
C#
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;
|
|
}
|
|
} |