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;}}}