AppSetting.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. using System.Text;
  2. using Newtonsoft.Json;
  3. namespace Vbdsm.Settings
  4. {
  5. public class AppSetting
  6. {
  7. public List<ServerSetting> Servers { get; set; } = new List<ServerSetting>();
  8. public int MaxErrorCount { get; set; } = 10;
  9. public bool UseInnerTerminal { get; set; } = false;
  10. public List<TerminalSetting> Terminals { get; set; } = new List<TerminalSetting>();
  11. private static AppSetting? _instance;
  12. public static AppSetting Instance => GetInstance();
  13. private static AppSetting GetInstance()
  14. {
  15. if (_instance == null)
  16. {
  17. using var fileStream = new FileStream("appsettings.json", FileMode.Open, FileAccess.Read);
  18. int n = (int)fileStream.Length;
  19. byte[] bt = new byte[n];
  20. var read = fileStream.Read(bt, 0, n);
  21. fileStream.Close();
  22. string data = Encoding.UTF8.GetString(bt, 0, n);
  23. _instance = JsonConvert.DeserializeObject<AppSetting>(data) ?? new AppSetting();
  24. }
  25. return _instance;
  26. }
  27. }
  28. }