文件使用xml格式,只需加载一次,与ini相比读写开销要降低50%。
基本结构:

using System.Xml.Linq;
using System.Collection.Generic;

namespace Csharp
{
	public class Configs
	{
		public Configs(string file)
		{
			this.Load(file);
		}
	//文件路径
	public string FilePath;

	//配置列表	
	private Dictionary<string, string> CList = new Dictionary<string, string>();	
	}
}

加载、保存方法:
可在程序启动时通过线程调用Load()方法加载xml文件;
程序结束时调用Save()方法;

//xml文件路径
public void Load(string file)
{
	this.FilePath = file;
	XDocument xml = XDocument.Load(file);
	foreach(XElement xe in xml.Root.Elements())
	{
		this.CList.Add(xe.Name.ToString(),xe.Value);
	}
}

public void Save()
{
	XDocument xml = new XDocument();
	XElement root = new XElement("Root");
	foreach(string key in this.CList.Keys)
	{
		XElement xe = new XElement(key);
		xe.Value = this.CList[key];
		root.Add(root);
	}
	xml.Add(root);
	xml.Save(this.FilePath);
}

读、写、删方法:

//key 键
public string Read(string key)
{
	if(this.CList.ContainsKay(key))
		return this.CList[key];
	return "";
}

//key 键, value 值
public void Write(string key, string value)
{
	if(this.CList.ContainsKay(key))
		this.CList[key] = value;
	else
		this.CList.Add(key, value);
}

//key 要删除的键		
public void DelKey(string key)
{
	if(this.CList.ContainsKay(key))
		this.CList.Remove(key);
}

使用方法:

//创建实例并加载文件
Configs cfg = new Configs("xmlPath");

cfg.Read("Key");//读取配置

cfg.Write("Key", "Value");//写入配置

cfg.DelKey("Key");//删除配置

cfg.Save();//保存配置到xml文件

xml文件结构:

<?xml version="1.0" encoding="utf-8" ?>
<Root>
	<Name>Value</Name>
</Root>

注意:键名需要符合xml的命名规范。

Categories: 代码片段

0 Comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注