xml配置檔案:
<?xml version="1.0"?>
<ModuleSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DataSource>fujian</DataSource>
<Uid>fujian_zyz</Uid>
<Password>fujian_sql_zyz</Password>
<ShowLogin>false</ShowLogin>
</ModuleSettings>
操作類的實作:
using System;
using System.IO;
using System.Web;
using System.Text;
using System.Xml.Serialization;
using System.Xml;
namespace LTPTOOL
{
#region 配置對象模型類
/// <summary>
/// 李天平
/// 2004.3
/// 配置的modul類(注意相關屬性的類型與[XmlElement])
/// use:ModuleSettings settings=ModuleConfig.GetSettings();
/// </summary>
public class ModuleSettings
{
private string datasource;
private string uid;
private string password;
private bool showlogin;
[XmlElement]
public string DataSource
{
set{ datasource=value; }
get{ return datasource; }
}
[XmlElement]
public string Uid
{
set{ uid=value; }
get{ return uid; }
}
[XmlElement]
public string Password
{
set{ password=value; }
get{ return password; }
}
[XmlElement]
public bool ShowLogin
{
set{ showlogin=value; }
get{ return showlogin; }
}
}
#endregion
#region 配置的操作類ModuleConfig
/// <summary>
/// 配置的操作類ModuleConfig。
/// </summary>
public class ModuleConfig
{
public static ModuleSettings GetSettings()
{
ModuleSettings data = null;
XmlSerializer serializer = new XmlSerializer(typeof(ModuleSettings));
try
{
string fileName = "db.config";
FileStream fs = new FileStream(fileName, FileMode.Open);
data = (ModuleSettings)serializer.Deserialize(fs);
fs.Close();
}
catch
{
data = new ModuleSettings();
}
return data;
}
public static void SaveSettings(ModuleSettings data)
{
string fileName = "db.config";
XmlSerializer serializer = new XmlSerializer (typeof(ModuleSettings));
// serialize the object
FileStream fs = new FileStream(fileName, FileMode.Create);
serializer.Serialize(fs, data);
fs.Close();
}
#endregion
}
}
得到配置檔案的詳細資訊;
ModuleSettings settings=ModuleConfig.GetSettings();
txtServer.Text=settings.DataSource;
txtUser.Text=settings.Uid;
txtPass.Text=settings.Password;
儲存修改:
settings.DataSource=txtServer.Text;
ModuleConfig.SaveSettings(settings);
對于擴充配置也非常友善,隻需修改ModuleSettings的對象模型和ModuleConfig.中的檔案名就可以用到任何其他配置檔案的操作中。