一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - ASP.NET下使用xml反序列化、緩存依賴實(shí)現(xiàn)個(gè)性化配置文件的實(shí)時(shí)生效

ASP.NET下使用xml反序列化、緩存依賴實(shí)現(xiàn)個(gè)性化配置文件的實(shí)時(shí)生效

2020-04-18 14:17輝色天空 ASP.NET教程

本文主要介紹了ASP.NET下使用xml反序列化、緩存依賴實(shí)現(xiàn)個(gè)性化配置文件的實(shí)時(shí)生效的方法。具有一定的參考價(jià)值,下面跟著小編一起來看下吧

因?yàn)橐恍┡渲脤傩员容^多,存在多組屬性,因此結(jié)合xml解析、緩存技術(shù),實(shí)現(xiàn)配置文化的自動(dòng)解析、存入緩存、緩存依賴實(shí)時(shí)更新配置內(nèi)容。

配置文件反序列化存入緩存的核心方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public Class.Settings GetSettings()
 {
 if (HttpRuntime.Cache["settings"] != null)
  return (Class.Settings)HttpRuntime.Cache["settings"];
 string rootPath = GetPath();
 #region rootPath
 if (rootPath == "")
 {
  log.Write(MsgType.Fatal, "配置文件根目錄rootPath為空");
  return null;
 }
 else
 {
  if (!rootPath.EndsWith("\\"))
  rootPath += "\\";
  rootPath = rootPath + "settings\\settings.config";
 }
 #endregion
 if (!File.Exists(rootPath))
 {
  log.Write(MsgType.Fatal, "配置文件根目錄rootPath為空");
  return null;
 }
 string content = File.ReadAllText(rootPath, Encoding.Default);
 Class.Settings model = PublicMethod.XmlSerialize.DeserializeXML<Class.Settings>(content);
 log.Write(MsgType.Information, "讀取配置文件");
 CacheDependency cd = new CacheDependency(rootPath);
 HttpRuntime.Cache.Add("settings", model, cd, DateTime.Now.AddMinutes(5), TimeSpan.Zero, CacheItemPriority.High, null);
 return model;
 }

上面自動(dòng)獲取rootPath的方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/// <summary>
/// 取當(dāng)前根目錄的方法
/// </summary>
private static string GetPath()
{
string rootPath = "";
System.Diagnostics.Process p = System.Diagnostics.Process.GetCurrentProcess();
//WebDev.WebServer visual studio web server
//xxx.vhost  Winform
//w3wp   IIS7
//aspnet_wp  IIS6
//iisexpress  vs2013
string processName = p.ProcessName.ToLower();
if (processName == "aspnet_wp" || processName == "w3wp" || processName == "webdev.webserver" || processName == "iisexpress")
{
 if (System.Web.HttpContext.Current != null)
 rootPath = System.Web.HttpContext.Current.Server.MapPath("~/");
 else //當(dāng)控件在定時(shí)器的觸發(fā)程序中使用時(shí)就為空
 {
 rootPath = System.AppDomain.CurrentDomain.BaseDirectory;
 }
}
return rootPath;
}

Settings實(shí)體類的定義,要注意,這里的實(shí)體類要和settings配置文件對(duì)應(yīng),否則反序列化會(huì)出錯(cuò):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[XmlRoot(Namespace = "", IsNullable = false, ElementName = "settings")]
public class Settings
{
 #region 屬性
 [XmlElement("logger")]
 public LoggerConfig logger { get; set; }
 #endregion
 #region 子類
 [XmlType(TypeName = "logger")]
 public class LoggerConfig
 {
 public string loglevel { get; set; }
 public string savepath { get; set; }
 }
 #endregion
}

settings.config的內(nèi)容實(shí)例

?
1
2
3
4
5
6
7
8
9
10
11
<?xml version='1.0' encoding='utf-8'?>
 <settings>
 <logger>
 <loglevel>0</loglevel>
 <savepath>d:\log</savepath>
 </logger>
<queryurl>http://11.56.254.234:88/shashachaxunserver/shashachaxun</queryurl>
<receiveurl>http://172.16.1.131:88/ThirdPay/ChinaUMS/xml.aspx</receiveurl>
<turnurl>http://172.16.1.131:88/ThirdPay/ChinaUMS/query.aspx</turnurl>
 </chinaums>
 </settings>

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持服務(wù)器之家!

原文鏈接:http://huisky.com/blog/17011922322264

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久精品国产免费A片胖妇女 | a毛片久久免费观看 | 国产青草视频在线观看免费影院 | 国产精品一区二区三区免费视频 | 四虎1515hhcom | 亚洲AV久久无码精品蜜桃 | 亚洲欧美成人综合在线 | 亚洲第一天堂无码专区 | 狠狠做五月深爱婷婷天天综合 | 成人特级毛片69免费观看 | 女人和拘做受全过程免费 | 亚洲国产天堂综合一区 | 日b在线 | 日韩一区二区在线视频 | 精品午夜寂寞黄网站在线 | 久久se精品一区二区国产 | 国产精品一级片 | 日韩在线视频一区二区三区 | 4hu四虎永久网址 | 动漫美女被羞羞产奶 | 青青草成人在线观看 | 成人私人影院在线观看网址 | 激情视频图片小说qvdo | 国产大乳美女挤奶视频 | 天天干夜夜玩 | 日本xxoo动图网站欧美 | 欧美日韩亚洲成人 | 国自产精品手机在线视频 | 亚洲六月丁香婷婷综合 | 99久久国产亚洲综合精品 | 欧美s级人做人爱c视频 | 门房秦大爷小说 | 色老板视频在线 | 国产精品久久久久网站 | 日本高清视频一区二区 | 成 人 免费 小说在线观看 | 99在线精品日韩一区免费国产 | 蜜桃麻豆 | 日本视频高清免费观看xxx | 久久热这里只有 精品 | 亚洲嫩模吧粉嫩粉嫩冒白浆 |