Config类

Config类

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
     
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();
}
}
}

 

posted on 2011-01-20 11:22 RockyLOMO 阅读(...) 评论(...) 编辑 收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值