日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#架构设计-程序运行时从xml配置文件中加载配置项并设置为全局变量

發布時間:2025/3/19 C# 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#架构设计-程序运行时从xml配置文件中加载配置项并设置为全局变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

C#中全局作用域的常量、字段、屬性、方法的定義與使用:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102550025

在上面使用的全局作用域的類的基礎上,如果某些設置需要存儲在某個xml配置文件中,然后在程序啟動后從配置文件中加載到全局的變量中并使用。

比如:

在磁盤下某目錄中有一個xml配置文件FileSaveCfg.xml

<?xml version="1.0" encoding="utf-8"?> <FileSaveCfg><PreExportDataThreshold>500000</PreExportDataThreshold></FileSaveCfg>

那么需要在程序運行后就加載這個配置文件并獲取500000這個配置項,然后我

就可以在程序的任意地方通過全局變量去獲取這個500000配置項了。

注:

博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

為了實現程序運行后就加載配置文件的內容,打開項目下的Program.cs

?

然后在其Main方法中調用加載配置文件的配置項的方法,這里將此方法直接放在全局Global類中,參照上面的博客新建一個全局Global類,類中新建Init方法,然后在上面的Main方法中調用Init方法

??? class Program{/// <summary>/// 應用程序的主入口點。/// </summary>[STAThread]static void Main(string[] args){Global.Instance.Init();}}

然后來到Init方法中

??????? try{if (System.IO.File.Exists("d:\FileSaveCfg.xml")){System.Xml.XmlNode node = null;string strValue = String.Empty;System.Xml.XmlDocument doc = new System.Xml.XmlDocument();doc.Load(AppConfig.TestDataDirConfigFile);node = doc.SelectSingleNode("./FileSaveCfg/PreExportDataThreshold");if (node != null && node.FirstChild != null){try{if (XmlHelper.GetFirstChildNodeValue(node, true, out strValue)){int.TryParse(strValue, out Global._instance._preExportDataThreshold);}}catch (Exception ex){Console.Write("從配置文件{0}中解析PreExportDataThreshold異常:" + ex.Message);}}else{Console.Write("從配置文件{0}中不包含FileSaveCfg/PreExportDataThreshold節點!");}}}catch (Exception ex){Console.Write("從實驗目錄所在配置文件中解析實驗目錄異常:" + ex.Message);}

其中用到的獲取配置文件中節點的值調用了一個工具類中的方法GetFirstChildNodeValue代碼如下:

??????? public static bool GetFirstChildNodeValue(System.Xml.XmlNode node, bool throwException, out string value){value = string.Empty;try{value = node.FirstChild.Value.ToString();}catch (Exception ex){if (throwException){throw (ex);}return false;}return true;}

其中通過

int.TryParse(strValue, out Global._instance._preExportDataThreshold);

將從配置文件中加載數據將其賦值給全局字段

Global._instance._preExportDataThreshold

在Global中定義全局私有字段

private int _preExportDataThreshold = 500000;

并且設置了一個默認值

然后再在Global中添加一個public的屬性,用來對私有的屬性進行讀取

??????? public int PreExportDataThreshold{get { return _preExportDataThreshold; }set { _preExportDataThreshold = value; }}

然后就可以在程序的任何地方通過

Global.Instance.PreExportDataThreshold

來使用從配置文件中獲取的這個配置項了。

比如:

?if (recordDataList.Count > Global.Instance.PreExportDataThreshold )

?


?

?

?

總結

以上是生活随笔為你收集整理的C#架构设计-程序运行时从xml配置文件中加载配置项并设置为全局变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。