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