代码
using System;
using System.Xml;
using System.Collections;
using System.IO;

namespace Rocky
{
public sealed class Config : IEnumerable
{
public static readonly string ConfigPath;

static Config()
{
ConfigPath
= Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Rocky.config");
}

private XmlNode appNode;

public XmlNode AppNode
{
get { return appNode; }
}

public string this[string appKey]
{
set
{
lock (appNode)
{
XmlElement xElem
= (XmlElement)appNode.SelectSingleNode("//add[@key='" + appKey + "']");
if (xElem == null)
{
xElem
= appNode.OwnerDocument.CreateElement("add");
xElem.SetAttribute(
"key", appKey);
xElem.SetAttribute(
"value", value);
appNode.AppendChild(xElem);
}
else
{
if (value == null)
{
appNode.RemoveChild(xElem);
}
else
{
xElem.SetAttribute(
"value", value);
}
}
appNode.OwnerDocument.Save(ConfigPath);
}
}
get
{
XmlElement xElem
= (XmlElement)appNode.SelectSingleNode("//add[@key='" + appKey + "']");
if (xElem == null)
{
throw new NullReferenceException();
}
return xElem.GetAttribute("value");
}
}
public string this[int index]
{
set
{
XmlNodeList list
= appNode.SelectNodes("//add");
if (index >= 0 && index < list.Count)
{
lock (appNode)
{
XmlElement xElem
= (XmlElement)list[index];
if (value == null)
{
xElem.ParentNode.RemoveChild(xElem);
}
else
{
xElem.SetAttribute(
"value", value);
}
appNode.OwnerDocument.Save(ConfigPath);
}
}
}
get
{
XmlNodeList list
= appNode.SelectNodes("//add");
if (index >= 0 && index < list.Count)
{
return ((XmlElement)list[index]).GetAttribute("value");
}
throw new NullReferenceException();
}
}

internal Config()
{
XmlDocument xDoc
= new XmlDocument();
xDoc.Load(ConfigPath);
appNode
= xDoc.SelectSingleNode("//appSettings");
if (appNode == null)
{
throw new ArgumentException();
}
}

public IEnumerator GetEnumerator()
{
return appNode.SelectNodes("//add").GetEnumerator();
}
}
}

 

相关文章:

  • 2022-12-23
  • 2019-03-17
  • 2021-07-12
  • 2021-09-12
  • 2021-10-14
  • 2022-12-23
  • 2021-09-25
  • 2021-10-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
  • 2021-10-02
  • 2022-12-23
  • 2022-12-23
  • 2022-01-03
相关资源
相似解决方案