想實現:C#讀取XML文件內的內容至List
XML文件:AppAttr.xml 其中,一定是要ArrayOfAppAttr(紅色部分AppAttr為你的實體類名)
<?xml version="1.0" encoding="utf-8" ?> <ArrayOfAppAttr xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <AppAttr> <Key>FileFolder</Key> <Value>C:/PWFileVersion</Value> </AppAttr> <AppAttr> <Key>CallAddress</Key> <Value>pwfileversion://</Value> </AppAttr> </ArrayOfAppAttr>
實體類文件:AppAttr
[Serializable]//不能忘記 public class AppAttr { public AppAttr() { } public AppAttr(string K, string V) { Key = K; Value = V; } public string Key; public string Value; }
序列化類:XmlSerialize

class XmlSerialize { /// <summary> /// 反序列化XML為類實例 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="xmlObj"></param> /// <returns></returns> public static T DeserializeXml<T>(string xmlObj) { XmlSerializer serializer = new XmlSerializer(typeof(T)); using (StringReader reader = new StringReader(xmlObj)) { return (T)serializer.Deserialize(reader); } } /// <summary> /// 序列化類實例為XML /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <returns></returns> public static string SerializeXml<T>(T obj) { using (StringWriter writer = new StringWriter()) { new XmlSerializer(obj.GetType()).Serialize((TextWriter)writer, obj); return writer.ToString(); } } }
程序運行進行讀取
List<AppAttr> appAttrList = null; XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<AppAttr>)); //_configPath為你的xml配置文件位置 using (StreamReader streamReader = new StreamReader(_configPath)) { appAttrList = xmlSerializer.Deserialize(streamReader) as List<AppAttr>; }
參考: