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

  • 相关阅读:
    React视角下的轮播图
    深入理解JSX
    React.js入门笔记(再续):评论框的实现
    React.js入门笔记(续):用React的方式来思考
    React.js入门笔记
    jquery实现简单瀑布流布局(续):图片懒加载
    jquery实现简单瀑布流布局
    Node.js入门笔记(6):web开发方法
    使用X-UA-Compatible来设置IE浏览器兼容模式
    $(window).load(function() {})和$(document).ready(function(){})的区别
  • 原文地址:https://www.cnblogs.com/Googler/p/1939929.html
Copyright © 2011-2022 走看看