XmlWriter/XmlReader示例代码
在Silverlight项目中,如果您想最大程度的减少xap包的大小,仅使用默认System.Xml命名空间下提供的功能来实现“XML序列化/反序列化”,恐怕XmlReader/XmlWriter将成为唯一选择了,下面是示例代码:
using System.IO; using System.Text; using System.Xml; namespace slLib { public class Person { private string _name = "" ; /// <summary> /// 姓名 /// </summary> public string Name { get { return _name; } set { _name = value; } } private int _age = 0; /// <summary> /// 年龄 /// </summary> public int Age { get { return _age; } set { _age = value; } } /// <summary> /// 将Person实例转化为xml字符串 /// </summary> /// <returns></returns> public string ToXmlString() { MemoryStream ms = new MemoryStream(); XmlWriter writer = XmlWriter.Create(ms); writer.WriteStartDocument(); writer.WriteStartElement( "data" ); writer.WriteStartElement( "person" ); writer.WriteStartElement( "name" ); writer.WriteAttributeString( "type" , "String" ); writer.WriteValue( this .Name); writer.WriteEndElement(); writer.WriteStartElement( "age" ); writer.WriteAttributeString( "type" , "Int32" ); writer.WriteValue( this .Age); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); writer.Flush(); writer.Close(); byte [] bytes = ms.ToArray(); string result = Encoding.UTF8.GetString(bytes, 0, bytes.Length); return result; } /// <summary> /// 从xml字符串给Person实例属性赋值 /// </summary> /// <param name="xmlString"></param> public void FromXmlString( string xmlString) { MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(xmlString)); XmlReader reader = XmlReader.Create(ms); reader.Read(); reader.ReadStartElement( "data" ); reader.ReadStartElement( "person" ); string nameType = reader.GetAttribute( "type" ); string nameValue = reader.ReadElementContentAsString(); string ageType = reader.GetAttribute( "type" ); int ageValue = reader.ReadElementContentAsInt(); reader.ReadEndElement(); reader.ReadEndElement(); reader.Close(); this ._name = nameValue; this ._age = ageValue; } } } |
XmlWriter/XmlReader示例代码的更多相关文章
- 基于DotNetOpenAuth的OAuth实现示例代码: 获取access token
1. 场景 根据OAuth 2.0规范,该场景发生于下面的流程图中的(D)(E)节点,根据已经得到的authorization code获取access token. 2. 实现环境 DotNetOp ...
- 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题
调用同步锁的wait().notify().notifyAll()进行线程通信 看这个经典的存取款问题,要求两个线程存款,两个线程取款,账户里有余额的时候只能取款,没余额的时候只能存款,存取款金额相同 ...
- ActiveMQ笔记(1):编译、安装、示例代码
一.编译 虽然ActiveMQ提供了发布版本,但是建议同学们自己下载源代码编译,以后万一有坑,还可以尝试自己改改源码. 1.1 https://github.com/apache/activemq/r ...
- C#微信公众平台接入示例代码
http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html 这是微信公众平台提供的接入指南.官网只提供了php的示例代码 ...
- 编译opengl编程指南第八版示例代码通过
最近在编译opengl编程指南第八版的示例代码,如下 #include <iostream> #include "vgl.h" #include "LoadS ...
- 股票数据调用示例代码php
<!--?php // +---------------------------------------------------------------------- // | JuhePHP ...
- php示例代码之类似于C#中的String.Format方法
php示例代码之类似于C#中的String.Format方法 原文来自于 http://stackoverflow.com/questions/1241177/c-string-format-equ ...
- redis 学习笔记(2)-client端示例代码
redis提供了几乎所有主流语言的client,java中主要使用二种:Jedis与Redisson 一.Jedis的使用 <dependency> <groupId>redi ...
- 正则表达式学习笔记(附:Java版示例代码)
具体学习推荐:正则表达式30分钟入门教程 . 除换行符以外的任意字符\w word,正常字符,可以当做变量名的,字母.数字.下划线.汉字\s space,空白符 ...
随机推荐
- No plugin found for prefix 'jetty' in the current project and in the plugin groups 【转】
在maven进行jetty的调试中出现错误: [plain] view plaincopyprint? [ERROR] No plugin found for prefix 'jetty' in th ...
- u11-nav01
<header id="masthead" class="masthead" role="banner"> <nav cl ...
- RAID 磁盘状态为foreign,怎么变成ready
我们在关掉电源,插入三块硬盘,打开电源 这时候: 首先启动服务器,出现[Press<ctrl><R>to Run Configuration Utility]提示时,按下ctr ...
- ORACLE建表练习
1,学生表 -- Create table create table T_HQ_XS ( xueh ) not null, xingm ) not null, xingb ) ', nianl NUM ...
- 教你一步一步实现一个Promise
Promise我想现在大家都非常熟悉了,主要作用就是解决异步回调问题,这里简单介绍下. Promise规范是CommonJS规范之一,而Promise规范又分了好多种,比如 Promises/A.Pr ...
- <supports-screens>的用法
<supports-screens android:resizeable=["true"| "false"] android:smallScreens=[ ...
- BZOJ-1192 鬼谷子的钱袋 2^n有关数论
1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2473 Solved: 1806 [Submit][St ...
- fiddler 挂载 JS文件
有时候,网站 JS 有问题,或者我们想调试JS,就修改了JS,,然后希望它在本地能与网站一起运行,就需要用到 挂载JS了
- c++标准库和stl关系
C++标准库的所有头文件都没有扩展名.C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能. <cname>形式的标准头文件[ <complex>例外]其 ...
- php验证是否是中文
header("content-type:text/html;charset=utf-8");$str = "编";if (preg_match("/ ...