mirror of
https://github.com/HolographicHat/Yae.git
synced 2025-12-11 08:58:12 +08:00
41 lines
1.4 KiB
C#
41 lines
1.4 KiB
C#
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
namespace YaeAchievement.AppCenterSDK.Models.Serialization;
|
|
|
|
#pragma warning disable CS8604, CS8765, CS8603
|
|
public static class LogSerializer {
|
|
|
|
private static readonly JsonSerializerSettings SerializationSettings;
|
|
private static readonly LogJsonConverter Converter = new ();
|
|
|
|
static LogSerializer() {
|
|
SerializationSettings = new JsonSerializerSettings {
|
|
Formatting = Formatting.None,
|
|
NullValueHandling = NullValueHandling.Ignore,
|
|
DateFormatHandling = DateFormatHandling.IsoDateFormat,
|
|
DateTimeZoneHandling = DateTimeZoneHandling.Utc,
|
|
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
|
|
Converters = { Converter }
|
|
};
|
|
}
|
|
|
|
public static void AddLogType(string typeName, Type type) {
|
|
Converter.AddLogType(typeName, type);
|
|
}
|
|
|
|
public static string Serialize(LogContainer logContainer) {
|
|
return JsonConvert.SerializeObject(logContainer, SerializationSettings);
|
|
}
|
|
|
|
public static string Serialize(Log log) {
|
|
return JsonConvert.SerializeObject(log, SerializationSettings);
|
|
}
|
|
|
|
public static LogContainer? DeserializeLogs(string json) {
|
|
return JsonConvert.DeserializeObject<LogContainer>(json, SerializationSettings);
|
|
}
|
|
}
|