using System.IO; using System.Text; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.Files { /// /// Base class for other JSON serializers /// /// public partial class JsonFile : IFileSerializer { /// public bool Serialize(T? obj, string? path) => Serialize(obj, path, new UTF8Encoding(false)); /// /// Serialize a into a file /// /// Type of object to serialize from /// Data to serialize /// Path to the file to serialize to /// Encoding to parse text as /// True on successful serialization, false otherwise public bool Serialize(T? obj, string? path, Encoding encoding) { if (string.IsNullOrEmpty(path)) return false; using var stream = new Streams.JsonFile().Serialize(obj, encoding); if (stream == null) return false; using var fs = File.OpenWrite(path); stream.CopyTo(fs); return true; } } }