wince平台用xml文件做配置文件

时间:2021-02-04 17:47:50
在wince平台下做应用的时候我们有时候也需要配置文件,可是再.NET Compact Framework 平台下是没有app.config文件的,那我们怎么办? 其实app.config本质上也是xml的一种,下面我们来用配置xml来作我们的配置文件。我直接做个实例来帮助大家理解: 我们新建一个项目,具体结构如下图: wince平台用xml文件做配置文件     如上图所示:我们的项目名称为:appconfigxml;配置文件为appconfig.xml;应用界面为form1;操作配置文件的类为SimpleConfigFile.cs,其具体内容如下:
    /// <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>
运行结果如下图: wince平台用xml文件做配置文件