当前位置: 首页 > news >正文

C# xml反序列化


XML反序列化很方便,示例:



   
 [XmlRoot(Root = "result")]
    public class UniMsgSetResult
    {
        [XmlAttribute("resultCode")]
        public int resultCode;


        [XmlElement("uniMsgSet")]
        public UniMsgSet uniMsgSet;




    }




<result resultCode="0">
<UniMsgSet>...</UniMsgSet>
</result>






    集合类型示例:


[XmlRoot("result")]
    public class GetDiskInnerResult
    {
        public string parentCatalogID; //String32 待查询目录的父目录ID。如果当前目录为root,则父目录ID为空。


        


        [XmlArray("catalogList"), XmlArrayItem("catalogInfo")]
        public List<CatalogInfo> catalogList;// CatalogInfo[] 查询节点下的目录列表


        [XmlArray("contentList"), XmlArrayItem("contentInfo")]
        public List<ContentInfo> contentList; // ContentInfo[] 查询节点下的内容列表
    }



   
 <result>
    <parentCatalogID>1</parentCatalogID>
    <catalogList>
    <catalogInfo>...</catalogInfo>
    <catalogInfo>...</catalogInfo>
    </catalogList>


    <contentList>
    <contentInfo>...</contentInfo>
    <contentInfo>...</contentInfo>
    </contentList>
    </result>






如果要为集合实体添加属性:




In order words, add an attribute to an object element after xml serialization,
If you want something like,


<Rats count=“2″>
  <Rat>little rat</Rat>
  <Rat>old rat</Rat>
</Rats>


The C# code is


[XmlType(“Rats”)]
    public class Rats
    {
        [XmlAttribute(“count”)]
        public int Count { get; set; }
        [XmlElement(“Rat”)] // now the array element will be as same as the object element Rats. 
        public string[] Rat { get; set; }
    }


Traditional xml array serialization would get the extra element for the array itself.


[XmlType(“Rats”)]
    public class Rats
    {
        [XmlAttribute(“count”)]
        public int Count { get; set; }
        [XmlArray(“Rats”)]
        [XmlArrayItem(“Rat”)]
        public string[] Rat { get; set; }
    }


<Rats count=“2″>
  <Rats>
    <Rat>little rat</Rat>
    <Rat>old rat</Rat>
  </Rats>
</Rats>



参见
http://www.codemeit.com/xml/c-xmlserializer-add-an-attribute-to-an-array-element.html

相关文章:

  • C# 获得本地IP地址
  • [ListView.View=List]的垂直滚动条
  • C# html编码和文本的转换
  • 服务质量:电信无法回避的短板
  • C# 使用.NET性能计数器示例 绘制出正弦函数图像
  • 软件开发者面试百问
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • 情人节的礼物——书写是为了更好地思考——回应未鹏
  • Fiddler 发请求时 设置 cookie
  • Xml CData的使用 获取原始的节点内容
  • Nebula3中的Message
  • HttpHandler 异步监听请求
  • 互联网进军影视作品的软广告
  • JS 动态增加DIV 的大小
  • 在UltraWebGrid中验证填入数据
  • [iOS]Core Data浅析一 -- 启用Core Data
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • Bytom交易说明(账户管理模式)
  • maven工程打包jar以及java jar命令的classpath使用
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • Wamp集成环境 添加PHP的新版本
  • 飞驰在Mesos的涡轮引擎上
  • 观察者模式实现非直接耦合
  • 京东美团研发面经
  • 驱动程序原理
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 携程小程序初体验
  • 写给高年级小学生看的《Bash 指南》
  • 一个项目push到多个远程Git仓库
  • 移动端解决方案学习记录
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 自制字幕遮挡器
  • ionic异常记录
  • 阿里云重庆大学大数据训练营落地分享
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​ArcGIS Pro 如何批量删除字段
  • ​MySQL主从复制一致性检测
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #NOIP 2014# day.1 T2 联合权值
  • #pragma once
  • (1)SpringCloud 整合Python
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (三十五)大数据实战——Superset可视化平台搭建
  • (四)Linux Shell编程——输入输出重定向
  • (一)Dubbo快速入门、介绍、使用
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)甲方乙方——赵民谈找工作
  • (转)平衡树
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树