using System.Text.Json; using System.Text.Json.Serialization; namespace WinLog.Models; [method: JsonConstructor] public class AppSettings(string dateFormat, string directory, string logFilter, string[] messageFilters, string monitorApplicationResource, string monitorApplicationSite, int millisecondsDelay, int rollingMinutes) { public string DateFormat { init; get; } = dateFormat; public string Directory { init; get; } = directory; public string LogFilter { init; get; } = logFilter; public string[] MessageFilters { init; get; } = messageFilters; public string MonitorApplicationResource { init; get; } = monitorApplicationResource; public string MonitorApplicationSite { init; get; } = monitorApplicationSite; public int MillisecondsDelay { init; get; } = millisecondsDelay; public int RollingMinutes { init; get; } = rollingMinutes; public override string ToString() { string result = JsonSerializer.Serialize(this, AppSettingsSourceGenerationContext.Default.AppSettings); return result; } } [JsonSourceGenerationOptions(WriteIndented = true)] [JsonSerializable(typeof(AppSettings))] internal partial class AppSettingsSourceGenerationContext : JsonSerializerContext { }