wince平台用xml文件做配置文件
在wince平台下做应用的时候我们有时候也需要配置文件,可是再.NET Compact Framework 平台下是没有app.config文件的,那我们怎么办?
其实app.config本质上也是xml的一种,下面我们来用配置xml来作我们的配置文件。我直接做个实例来帮助大家理解:
我们新建一个项目,具体结构如下图:
如上图所示:我们的项目名称为:appconfigxml;配置文件为appconfig.xml;应用界面为form1;操作配置文件的类为SimpleConfigFile.cs,其具体内容如下:
![app](http://vsdot.net/wp-content/uploads/2013/04/app.png)
/// <summary> ///简单配置文件,只包含字符串键值信息 /// </summary> public class SimpleConfigFile { /// <summary> /// 静态构造函数 /// </summary> static SimpleConfigFile() { const string fileName = "appconfig.xml"; var fullPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase), fileName);//获取运行程序的当前路径 Default=File.Exists(fullPath)?new SimpleConfigFile(fullPath) : new SimpleConfigFile(); } /// <summary> /// 单例 /// </summary> public static SimpleConfigFile Default; public IDictionary<string, string> AppSettings { get; private set; } private readonly string _configFile; /// <summary> /// 构造函数 /// </summary> internal SimpleConfigFile() { AppSettings=new Dictionary<string, string>(); } /// <summary> /// 构造函数重载 /// </summary> /// <param name="configFile"></param> internal SimpleConfigFile(string configFile) { _configFile = configFile; ReloadAppSettings(_configFile); } /// <summary> /// 重新加载appconfig.xml的内容 /// </summary> public void Reload() { if (_configFile!=null) { ReloadAppSettings(_configFile); } } /// <summary> /// 读取appconfig.xml的内容,其实就是xml文件的读操作 /// </summary> /// <param name="configFile"></param> private void ReloadAppSettings(string configFile) { AppSettings=new Dictionary<string, string>(); var xmlDoc = new XmlDocument(); xmlDoc.Load(configFile); var nodes = xmlDoc.GetElementsByTagName("appSettings"); if (nodes.Count > 0) { var outerNode = nodes[0]; foreach (XmlNode node in outerNode.ChildNodes) { AppSettings[node.Name] = node.InnerText; } } } }我们在窗体上放了一个listbox,formload里面调用appconfig.xml读取的操作: 具体代码如下:
private void Form1_Load(object sender, EventArgs e) { var dic = SimpleConfigFile.Default.AppSettings; foreach (var key in dic.Keys) { listBox1.Items.Add(key + ":" + dic[key]); } }
我们appconfig.xml的真实内容如下:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <Address>192.168.1.1</Address> <Stock>BJ</Stock> </appSettings> </configuration>运行结果如下图:
![模拟器](http://vsdot.net/wp-content/uploads/2013/04/moniqi.png)