zoukankan      html  css  js  c++  java
  • Config类

    代码
    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();
    }
    }
    }

  • 相关阅读:
    谷歌浏览器禁止缩放和全面屏显示
    常用正则表达式
    封装时间函数
    年月日,时分秒,星期
    昨天,明天,月初,月末,最近七天,最近一个月,今天零时js
    React框架
    javaweb基础备忘
    一些java基础知识的备忘
    查看deepin版本
    java中堆栈的一些理解备忘
  • 原文地址:https://www.cnblogs.com/Googler/p/1939929.html
Copyright © 2011-2022 走看看