38 lines
1.4 KiB
C#
38 lines
1.4 KiB
C#
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
|
|
{
|
|
} |