惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
爱范儿
爱范儿
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
B
Blog RSS Feed
博客园 - 聂微东
G
GRAHAM CLULEY
Engineering at Meta
Engineering at Meta
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
WordPress大学
WordPress大学
Scott Helme
Scott Helme
AI
AI
S
Security Affairs
T
Threat Research - Cisco Blogs
M
MIT News - Artificial intelligence
T
Troy Hunt's Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
人人都是产品经理
人人都是产品经理
AWS News Blog
AWS News Blog
T
Threatpost
Cyberwarzone
Cyberwarzone
www.infosecurity-magazine.com
www.infosecurity-magazine.com
U
Unit 42
V
Vulnerabilities – Threatpost
J
Java Code Geeks
博客园 - Franky
月光博客
月光博客
Blog — PlanetScale
Blog — PlanetScale
NISL@THU
NISL@THU
D
Docker
小众软件
小众软件
N
News and Events Feed by Topic
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
A
Arctic Wolf
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
Forbes - Security
Forbes - Security
量子位
PCI Perspectives
PCI Perspectives
美团技术团队
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
I
InfoQ
Security Archives - TechRepublic
Security Archives - TechRepublic
有赞技术团队
有赞技术团队
腾讯CDC
P
Proofpoint News Feed
S
Security @ Cisco Blogs
G
Google Developers Blog
C
Cisco Blogs

博客园 - 无心之柳.NET

解决git 不同branch 下node_moudes不同步的问题 使用webpack打包ThinkPHP的资源文件 - 无心之柳.NET - 博客园 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(三) - 无心之柳.NET - 博客园 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(二) - 无心之柳.NET - 博客园 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(一) - 无心之柳.NET - 博客园 使用 Express 和 waterline 创建简单 Restful API 让淘宝链接在微信中分享,GO Chrome Version 19.0.1055.1 dev Flash Missing plug-in的修复 笔记本双屏系统的组建 再次解决,android 2.3运行凯立德问题 好消息,不用替换文件,凯立德能用了 新买的雷柏1800无线套装 新年好!!!!!!!!!!!!!!!!!!!!!!! 十五的月亮十六圆 开心网外挂开发之 Singleton 单件模式应用 开心网外挂开发之 三 开心网外挂开发之 开篇 恩,我还在写代码 Ubuntu 安装Mono2.0和MonoDevelop的磨难记
开心网外挂开发之 XML序列化于反序列化
无心之柳.NET · 2009-08-20 · via 博客园 - 无心之柳.NET

通过昨天的文章我们已经了解了开发一个开心网的外挂所需要的最基本的东本,接下来的工作可以说基本上就上围绕这个基础来进行的,我写这一系列文章主要的目地不仅仅是为了让大家了解怎么开发开心网外挂,最主要的目过还是通过一个实例程序的编程,让初学者了解C#。

因为好多初学都看了很多基础性的东西,了解到了C#有好多特性, 但这些特性到底是干吗用的,或用了有什么好处了解的不够清楚,所以我在这一系列中,会陆续介绍

  1. XML序列化
  2. 泛型
  3. 设计模式的运用
  4. 多线程

等等这些都将会在我的程序中被运用到,今天先写XML序列化与反序列化,其实我的程序主要用到的是XML的反序列化,我们先了解一下XML序列化与反序列化是怎么回事

XML序列化与反序列化

MSDN中是这么说的:

序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。反之,反序列化根据流重新构造对象。

在C#中XML 序列化中的中心类是 XmlSerializer 类,该类中最重要的方法是 SerializeDeserialize 方法。简单的示例我就不从MSDN中抄了, 大家了解了就行, 不了解去翻MSDN。下面我会到我们的程序, 为什么我们要用到序列化。

为什么我们需要XML序列化

我们先对开心网的各种操作进行分析,我把我会发现,开心网好多操作请求服务器后,服务器会返会一个XML格式的字符串。比如说,我们的花园信息,我们会发现,服务器端返回的是这么一个XML

开心网花园信息的XML

这里包含了开心花园里的所有信息,怎么样把这些信息读入呢, 好多人的想法都是把这个XML读到XMLDocument里,然后一个一个节点去查找所要的信息,其实用把这个XML反序化了,直接就可以得到一切我们所想要的,何乐而不为呢,我们根据这个XML设计我们的类,反序列化也不是每个节点都有要类中有相对的字段属性,选一些我们需要的就可以, 下面是我设计的类

Code

可以看到,我们的GardenInfo类,只有一个Account类型的包含花园所属帐户信息的字段,和一个包含花园中每一块田地信息的的Garden[] 数组字段。XML好多节点里的信息我们现在都用不到,所以不必要体现出来,如果以后的需要我们在对映的类里添加相关字段就可以了。

下面我们就写把这个类通过反序列化的方式来实例化的方法:

Code

怎么样简单吧, 用你的VS试试吧。明天我们继续