ManagerXml.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml;
  6. namespace ServiceHelper
  7. {
  8. public class ManagerXml
  9. {
  10. private XmlDocument _xmlDocument;
  11. private string _fileName;
  12. private const string USETASK = "UseTask";
  13. private const string TASKDAYSINTERVAL = "TaskDaysInterval";
  14. private const string TASKSTARTBOUNDARY = "TaskStartBoundary";
  15. public ManagerXml(string fileName)
  16. {
  17. _xmlDocument = new XmlDocument();
  18. _xmlDocument.Load(fileName);
  19. _fileName = fileName;
  20. //检查配置文件中配置项是否齐全,补齐缺漏
  21. List<string> nodeNames = new List<string>();
  22. nodeNames.Add(USETASK);
  23. nodeNames.Add(TASKDAYSINTERVAL);
  24. nodeNames.Add(TASKSTARTBOUNDARY);
  25. XmlNode appSettringNode = _xmlDocument.SelectSingleNode("//appSettings");
  26. foreach (string nodeName in nodeNames)
  27. {
  28. XmlNode node = _xmlDocument.SelectSingleNode("//appSettings/add[@key='" + nodeName + "']");
  29. if (node == null)
  30. {
  31. XmlElement newElement = _xmlDocument.CreateElement("add");
  32. newElement.SetAttribute("key", nodeName);
  33. string defaultValue = "";
  34. switch (nodeName)
  35. {
  36. case USETASK:
  37. defaultValue = "false";
  38. break;
  39. case TASKDAYSINTERVAL:
  40. defaultValue = "1";
  41. break;
  42. case TASKSTARTBOUNDARY:
  43. defaultValue = "06:00:00";
  44. break;
  45. }
  46. newElement.SetAttribute("value", defaultValue);
  47. appSettringNode.AppendChild(newElement);
  48. }
  49. }
  50. _xmlDocument.Save(_fileName);
  51. }
  52. public string Get(string name)
  53. {
  54. XmlNode node = _xmlDocument.SelectSingleNode("//appSettings/add[@key='" + name + "']");
  55. return node.Attributes.GetNamedItem("value").Value;
  56. }
  57. public void Set(string name, string value)
  58. {
  59. XmlNode node = _xmlDocument.SelectSingleNode("//appSettings/add[@key='" + name + "']");
  60. node.Attributes.GetNamedItem("value").Value = value;
  61. _xmlDocument.Save(_fileName);
  62. }
  63. public string GetLogLevel()
  64. {
  65. XmlNode node = _xmlDocument.SelectSingleNode("//log4net/root/level");
  66. return node.Attributes.GetNamedItem("value").Value;
  67. }
  68. public void SetLogLevel(string level)
  69. {
  70. XmlNode node = _xmlDocument.SelectSingleNode("//log4net/root/level");
  71. node.Attributes.GetNamedItem("value").Value = level;
  72. _xmlDocument.Save(_fileName);
  73. }
  74. }
  75. }