溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

通用自定義XML配置類(lèi)

發(fā)布時(shí)間:2020-07-10 07:46:03 來(lái)源:網(wǎng)絡(luò) 閱讀:803 作者:zhangyah 欄目:編程語(yǔ)言

1、用XML文件保存配置信息

<?xml version="1.0"?>
<ModuleSettings>
<Server>127.0.0.1</Server>
<UserName>sa</UserName>
<Password>123458</Password>
<Database>KEYTEC</Database>
</ModuleSettings>

2、XML配置操作類(lèi)

#region  配置的操作類(lèi) ModuleConfig
/// <summary>
/// 配置項(xiàng)的操作類(lèi)
/// 注意:這里用的是靜態(tài)方法,所以不需要實(shí)例化
/// </summary>
public class ModuleConfig
{
//得到配置項(xiàng)對(duì)象實(shí)例信息
public static ModuleSettings GetSettings()
{
HttpContext context = HttpContext.Current;
ModuleSettings data = (ModuleSettings)context.Cache["ModuleSetting"];//從緩存取
if (data == null)//緩存里沒(méi)有
{
XmlSerializer serializer = new XmlSerializer(typeof(ModuleSettings));
try
{
//從文件取
string fileName = HttpContext.Current.Server.MapPath(GetSettingsFile());
FileStream fs = new FileStream(fileName, FileMode.Open);
data = (ModuleSettings)serializer.Deserialize(fs);//反序列化
fs.Close();
context.Cache.Insert("ModuleSetting", data, new CacheDependency(fileName));
}
catch (System.IO.FileNotFoundException)
{
//如果文件不存在,則返回一個(gè)空對(duì)象
data = new ModuleSettings();
}
}
return data;
}
//保存配置數(shù)據(jù)
public static void SaveSettings(ModuleSettings data)
{
string fileName = HttpContext.Current.Server.MapPath(GetSettingsFile());
XmlSerializer serializer = new XmlSerializer(typeof(ModuleSettings));
// serialize the object
FileStream fs = new FileStream(fileName, FileMode.Create);
serializer.Serialize(fs, data);
fs.Close();
}
//得到配置文件的路徑
private static string GetSettingsFile()
{
HttpContext context = HttpContext.Current;
string filePath = (string)context.Cache["ModuleSettingFile"];//從緩存取
if (filePath == null)//緩存沒(méi)有
{
filePath = ConfigurationSettings.AppSettings["ModuleSettingFile"];//從web.config得到
context.Cache["ModuleSettingFile"] = filePath;//存入緩存
}
return filePath;
}
}
#endregion

3、配置類(lèi)的使用方法

(1)保存配置

//保存配置
ModuleSettings setting = new ModuleSettings();
setting.Server = "127.0.0.1";
setting.UserName = "sa";
setting.Password = "123456";
setting.Database = "KEYTEC";
ModuleConfig.SaveSettings(setting);
Response.Write("OK");

(2)讀取配置

//讀取配置
ModuleSettings setting = ModuleConfig.GetSettings();
string server = setting.Server;
string username = setting.UserName;
string pass = setting.Password;
string db = setting.Database;
Response.Write(server + "," + username + "," + pass + "," + db);

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI