using System.Text.Json.Serialization; using System.Text.Json; namespace Harmonia.Core.Data; public abstract class JsonFileRepository : FileRepository where TObject : notnull, new() { private readonly JsonSerializerOptions _options = new() { WriteIndented = true, IgnoreReadOnlyProperties = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull }; protected override string Extension => "json"; protected override TObject Deserialize(Stream stream) { return JsonSerializer.Deserialize(stream) ?? new(); } protected override string Serialize(TObject obj) { return JsonSerializer.Serialize(obj, _options); } }