xml配置文件推薦方式

1.XML幫助類

    /// <summary>/// Xml幫助類/// </summary>public  class XmlHelper{/// <summary>/// 保存xml/// </summary>/// <typeparam name="T"></typeparam>/// <param name="path"></param>/// <param name="t"></param>public static void SaveXml<T>(string path, T t){StreamWriter writer = new StreamWriter(path);new XmlSerializer(typeof(T)).Serialize(writer, t);writer.Close();}/// <summary>///  將文件轉換成實體/// </summary>/// <typeparam name="T"></typeparam>/// <param name="file"></param>/// <returns></returns>public static T LoadXml<T>(string file){StreamReader reader = new StreamReader(file);object obj = new XmlSerializer(typeof(T)).Deserialize(reader);reader.Close();return (T)obj;}/// <summary>/// 將XML轉換成實體/// </summary>/// <typeparam name="T"></typeparam>/// <param name="xml"></param>/// <returns></returns>public static T FromXml<T>(string xml){StringReader reader = new StringReader(xml);object obj = new XmlSerializer(typeof(T)).Deserialize(reader);reader.Close();return (T)obj;}/// <summary>/// 將實體對象轉換為xml字符串/// </summary>/// <typeparam name="T"></typeparam>/// <param name="t"></param>/// <returns></returns>public static string ToXml<T>(T t){StringBuilder builder = new StringBuilder();StringWriter writer = new StringWriter(builder);new XmlSerializer(typeof(T)).Serialize(writer, t);writer.Close();return builder.ToString();}/// <summary>/// 將xml轉換為實體對象/// </summary>/// <typeparam name="T"></typeparam>/// <param name="xmlPath">xml路徑</param>/// <returns></returns>public static T LoadXmlFile<T>(string xmlPath) where T : class{if (!File.Exists(xmlPath)){return null;}XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));StreamReader streamReader = null;try{streamReader = new StreamReader(xmlPath);return (T)(xmlSerializer.Deserialize(streamReader));}catch{throw;}finally{if (null != streamReader){streamReader.Close();}}}}

2.配置范例

    [XmlRoot("globalConfig")]public class GlobalConfiguration{[XmlElement("UnExportIndexCode")]public string UnExportIndexCode{get;set;}[XmlElement("FuturesRebarIndexCode")]public string FuturesRebarIndexCode{get;set;}
 }

3.配置范例

?

4.全局調用類

   public class RuntimeConfiguration{private static readonly object SingleLock = new object();private static GlobalConfiguration instance_global;public static GlobalConfiguration Global{get{if (instance_global == null){lock (SingleLock){if (instance_global == null){instance_global = MySteel.Common.Helper.XmlHelper.LoadXml<GlobalConfiguration>(AppDomain.CurrentDomain.BaseDirectory + AppSettingsHelper.GetStringValue("GlobalConfig"));}}}return instance_global;}}}

?

轉載于:https://www.cnblogs.com/jack-zeng/articles/6418202.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372919.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372919.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372919.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AFNetWorking https SSL認證

一般來講如果app用了web service , 我們需要防止數據嗅探來保證數據安全.通常的做法是用ssl來連接以防止數據抓包和嗅探 其實這么做的話還是不夠的 。 我們還需要防止中間人攻擊&#xff08;不明白的自己去百度&#xff09;。攻擊者通過偽造的ssl證書使app連接到了偽裝的假冒的…

查看環境列表_Xfce 4.14桌面環境正式發布,想要圖形界面又想節省內存?就它了...

1. Xfce 4.14桌面環境正式發布&#xff0c;它有什么新特性&#xff1f;本文主要講解Xfce 4.14桌面環境正式發布&#xff0c;它有什么新特性。Xfce已經開發了4年多&#xff0c;但是這個周末終于看到了期待已久的Xfce 4.14的發布。Xfce 4.14是這個輕量級桌面環境的最新穩定版本&a…

使用Log4jdbc記錄JDBC操作

當我們開發任何應用程序&#xff0c;完成它或結束其任何模塊時&#xff0c;我們都會開始優化過程。 大多數應用程序都包含數據庫訪問權限&#xff0c;并且如果您使用的是ORM &#xff0c;則可能會使用hibernate 。 優化休眠持久層&#xff0c;要求準備閱讀&#xff0c;理解和評…

android BluetoothAdapter藍牙BLE掃描總結

做室內定位的程序員應該都知道&#xff0c;在Android 5.0之后&#xff0c;google推出了藍牙掃描新接口&#xff0c;我們在實測中發現出一些問題&#xff0c;現在給大家列出&#xff0c;以供參考&#xff1a; 1.android 4.3.1(Build.VERSION_CODES.JELLY_BEAN_MR2)增加的startLe…

卷積神經網絡語音識別_用于物體識別的3D卷積神經網絡

本文提出了一種基于CNN的3D物體識別方法&#xff0c;能夠從3D圖像表示中識別3D物體&#xff0c;并在比較了不同的體素時的準確性。已有文獻中&#xff0c;3D CNN使用3D點云數據集或者RGBD圖像來構建3D CNNs&#xff0c;但是CNN也可以用于直接識別物體體積表示的體素。本文中&am…

段落排版--對齊(text-aliagn)

想為塊狀元素中的文本、圖片設置居中樣式嗎&#xff1f;可以使用text-align樣式代碼&#xff0c;如下代碼可實現文本居中顯示。(那么什么是塊狀元素呢&#xff1f;后面會講到呢~) h1{text-align:center; } <h1>了不起的蓋茨比</h1> 同樣可以設置居左&#xff1a; h…

Java 7:在不丟失數據的情況下關閉NIO.2文件通道

關閉異步文件通道可能非常困難。 如果您將I / O任務提交到異步通道&#xff0c;則需要確保正確執行了任務。 實際上&#xff0c;出于多種原因&#xff0c;這對于異步通道可能是一個棘手的要求。 默認的通道組使用守護進程線程作為工作線程&#xff0c;這不是一個好選擇&#xf…

JavaScript封裝方法,兼容參數類型為Number和String

/*** 依據Kind確定跳轉到目標列表頁面。* param kind*/function gobackByKind(kind) {var kindStr String(kind);switch(kindStr){case "1"://跳轉到客戶列表頁面window.location.href/biz/customer/list;break;case "2"://跳轉到代理機構列表頁面window.…

#獲得請求來源ip_以太網數據包TCP、IP、ICMP、UDP、ARP協議頭結構詳解

以太網首部目地MAC地址(8字節)源MAC地址(8字節)類型(2字節)1、IP頭的結構版本(4位)頭長度(4位)服務類型(8位)封包總長度(16位)封包標識(16位)標志(3位)片斷偏移地址(13位)存活時間(8位)協議(8位)校驗和(16位)來源IP地址(32位)目的IP地址(32位)選項(可選)填充(可選)數據(1)字節和…

團隊項目第二次沖刺Ⅶ

今天將整體代碼的編碼方式改了&#xff0c;作業模塊基本修改完成 遇到的問題是對于添加問答模塊無從下手轉載于:https://www.cnblogs.com/brucekun/p/5573312.html

編寫Play 2的模塊,第2部分:攔截器

在本教程的第一部分中&#xff0c;我們介紹了創建&#xff0c;發布和調用模塊的基本知識。 我們創建的模塊并沒有真正做很多事情&#xff0c;因此現在是時候使用Play的某些功能來擴展功能了。 1.攔截器 攔截器使您可以攔截對控制器的調用&#xff0c;并增強或阻止其行為。 在第…

c# ef報錯_C# EF調用MySql出現“未將對象引用設置到對象的實例”錯誤解決方案

C# EF調用MySql出現“未將對象引用設置到對象的實例”錯誤解決方案---修改步驟---1.打開Nuget管理包&#xff0c;把Mysql.Data替換為6.10.0以下任意版本。這里選擇的是6.8.82.修改完畢后&#xff0c;繼續把Mysql.Data.Entity也修改為對應版本6.8.8。3.安裝完成后可以看到App.Co…

js格式化時間

Date.prototype.format function(fmt) {var o { "M" : this.getMonth()1, //月份 "d" : this.getDate(), //日 "h" : this.getHours(), //小時 "m" : this.getMinu…

PHP---函數

一.函數定義的四個要素 返回類型&#xff0c;函數名&#xff0c;參數列表&#xff0c;函數體 //1.最簡單的定義方式/*function show(){ echo "hello";}show();*///2.有參數的函數定義/*function show($a){ echo $a;}show("bbbbb");*///3.有默認值的函數定義…

ServletRequest startAsync()的有用性有限

前段時間我遇到了Servlet 3.0中AsyncContext.start&#xff08;…&#xff09;的目的是什么&#xff1f; 題。 引用上述方法的Javadoc &#xff1a; 使容器調度線程&#xff08;可能從托管線程池中&#xff09;運行指定的Runnable 。 提醒大家&#xff0c; AsyncContext是Servl…

mysql所支持的比較運算符_mysql比較運算符有哪些?Mysql比較運算符詳解

比較運算符可用于比較數字和字符串。今天發一篇Mysql比較運算符詳解&#xff0c;希望對初學者有所幫助&#xff0c;雖然現在流行NoSQL&#xff0c;但是MYSQL還是很有用的&#xff0c;數字作為浮點值進行比較&#xff0c;字符串以不區為例進行比較&#xff0c;運算符用于比較表達…

數據結構0類模板的使用

類模板的使用 #include <iostream> #include <conio.h> #include <string> #define N 3 using namespace std;template <class numtype> class Swap{public :Swap(numtype a,numtype b){xa;yb;}numtype ___(){tempx;xy;ytemp;return x;}//testnumtype …

JavaScript 函數

函數 由于JavaScript的函數也是一個對象&#xff0c;所以類似function abs(v){}函數實際上是一個函數對象&#xff0c;而函數名abs可以視為指向該函數的變量。 因此&#xff0c;第二種定義函數的方式如下&#xff1a; var abs function (x) {if (x > 0) {return x;} else {…

Http Invoker的Spring Remoting支持

Spring HTTP Invoker是Java到Java遠程處理的重要解決方案。 該技術使用標準的Java序列化機制通過HTTP公開服務&#xff0c;并且可以被視為替代解決方案&#xff0c;而不是Hessian和Burlap中的自定義序列化。 而且&#xff0c;它僅由Spring提供&#xff0c;因此客戶端和服務器應…

mysql 日期列表_MySQL 生成日期表

1、創建一個num表&#xff0c;用來存儲數字0~9CREATE TABLE num (i int);2、在num表中生成0~9INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);3、生成一個存儲日期的表&#xff0c;datalist是字段名CREATE TABLE if not exists calendar(dateli…