首页 > 代码库 > 对象序列和反序列化Xml
对象序列和反序列化Xml
1. XmlArray和XmlArrayItem
XmlArray和XmlArrayItem是不同的,XmlArray是指这个数组叫什么,XmlArrayItem 值数组的每个元素叫什么。
<XmlArray> <XmlArrayItem>0</XmlArrayItem> <XmlArrayItem>1</XmlArrayItem> <XmlArrayItem>2</XmlArrayItem></XmlArray>
测试对象
1 #region UrlsInfo 2 3 UrlsInfo info; 4 public UrlsInfo ConfigInfo 5 { 6 private set{ info = value;} 7 get { return info; } 8 } 9 10 [Serializable]11 [XmlRoot(ElementName = "root")]12 /// <summary>13 /// 14 /// </summary>15 public class UrlsInfo16 {17 [XmlElement(ElementName = "setting")]18 public SettingInfo Settings19 {20 get;21 set;22 }23 [XmlArray(ElementName = "urls"),XmlArrayItem(ElementName = "item")]24 public List<string> Urls { get; set; }25 }26 27 public class SettingInfo28 {29 [XmlElement(ElementName = "interval")]30 /// <summary>31 /// 心跳访问定时间隔32 /// </summary>33 public int Interval34 {35 get;36 set;37 }38 [XmlElement(ElementName = "use_db")]39 /// <summary>40 /// 是否使用数据库;true或fasle,为true时,下面的urls节点无效,直接读取数据库的表记录;为fasle时读取下面的url节点的设置41 /// </summary>42 public bool UseDb43 {44 get;45 set;46 }47 [XmlElement(ElementName = "connection_string")]48 public string ConnectionString49 {50 get;51 set;52 }53 }54 55 #endregion
单元测试
1 [TestMethod] 2 public void TestUrlsInfo() 3 { 4 UrlsConfig info = new UrlsConfig(); 5 string ConfigPath = info.ConfigPath; 6 7 UrlsConfig.UrlsInfo urlsInfo = new UrlsConfig.UrlsInfo(){ 8 Settings = new UrlsConfig.SettingInfo(){ 9 Interval = 60000,10 UseDb = false,11 ConnectionString = ""12 },13 Urls = new System.Collections.Generic.List<string>(){ "http://www.baidu.cn"}14 };15 string ConfigPath2 = AppDomain.CurrentDomain.BaseDirectory + "urlsTest.xml";16 using (Stream stream = new FileStream(ConfigPath2, FileMode.OpenOrCreate, FileAccess.ReadWrite))17 {18 XmlSerializer serializer = new XmlSerializer(typeof(UrlsConfig.UrlsInfo));19 serializer.Serialize(stream, urlsInfo);20 }21 22 string xml = WQB.Common.XmlHelper.SerializerPlain<UrlsConfig.UrlsInfo>(urlsInfo);23 24 }
相关参考:
https://www.mgenware.com/blog/?p=142
对象序列和反序列化Xml
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。