using System.Xml.Serialization; namespace Harmonia.Core.Data; public abstract class XmlFileRepository : FileRepository where TObject : notnull, new() { private readonly XmlSerializer _serializer = new(typeof(TObject)); protected override string Extension => "xml"; protected override async Task DeserializeAsync(Stream stream) { using TextReader textReader = new StreamReader(stream); return (TObject?)_serializer.Deserialize(textReader) ?? new(); } protected override async Task SerializeAsync(TObject obj) { using TextWriter textWriter = new StringWriter(); _serializer.Serialize(textWriter, obj); return textWriter.ToString() ?? string.Empty; } }