PipelineConfig.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using System.IO;
  3. using YamlDotNet.Serialization;
  4. using System.Collections.Generic;
  5. using SHJX.Service.Model.XmlModules;
  6. namespace SHJX.Service.Common.ReadXML
  7. {
  8. public class PipelineConfig
  9. {
  10. private static PipelineConfig _config;
  11. private static readonly object obj_lock = new();
  12. protected string FileName => string.Concat(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "config/pipeline.config.yaml");
  13. private PipelineConfig() { }
  14. public static PipelineConfig Instance
  15. {
  16. get
  17. {
  18. if (_config is null)
  19. {
  20. lock (obj_lock)
  21. {
  22. _config = new();
  23. }
  24. }
  25. return _config;
  26. }
  27. }
  28. public List<PipelineContent> PipelineContents
  29. {
  30. get
  31. {
  32. using TextReader reader = File.OpenText(FileName);
  33. Deserializer deserializer = new();
  34. PipelineConfigs config = deserializer.Deserialize<PipelineConfigs>(reader);
  35. return config.PipeContents;
  36. }
  37. }
  38. }
  39. }