开心网外挂开发之 XML序列化于反序列化

简介:

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

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

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

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

XML序列化与反序列化

MSDN中是这么说的:

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

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

为什么我们需要XML序列化

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

 

ContractedBlock.gif 开心网花园信息的XML

 

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

 

ContractedBlock.gif Code

 

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

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

 

 

ContractedBlock.gif Code

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






    本文转自无心之柳.NET博客园博客,原文链接:http://www.cnblogs.com/9527/archive/2009/08/20/1551050.html ,如需转载请自行联系原作者


相关文章
|
20天前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
1月前
|
存储 开发框架 .NET
解锁SqlSugar新境界:利用Serialize.Linq实现Lambda表达式灵活序列化与反序列化,赋能动态数据查询新高度!
【8月更文挑战第3天】随着软件开发复杂度提升,数据查询的灵活性变得至关重要。SqlSugar作为一款轻量级、高性能的.NET ORM框架,简化了数据库操作。但在需要跨服务共享查询逻辑时,直接传递Lambda表达式不可行。这时,Serialize.Linq库大显身手,能将Linq表达式序列化为字符串,实现在不同服务间传输查询逻辑。结合使用SqlSugar和Serialize.Linq,不仅能够保持代码清晰,还能实现复杂的动态查询逻辑,极大地增强了应用程序的灵活性和可扩展性。
67 2
|
13天前
|
存储 Java
Java编程中的对象序列化与反序列化
【8月更文挑战第28天】在Java世界中,对象序列化与反序列化是数据持久化和网络传输的关键技术。本文将深入浅出地探讨这一过程,带你领略其背后的原理及应用,让你的程序在数据的海洋中自由航行。
|
7天前
|
存储 Java
Java编程中的对象序列化与反序列化
【9月更文挑战第2天】在Java的世界里,对象序列化和反序列化就像是给数据穿上了一件隐形的斗篷。它们让数据能够轻松地穿梭于不同的系统之间,无论是跨越网络还是存储在磁盘上。本文将揭开这层神秘的面纱,带你领略序列化和反序列化的魔法,并展示如何通过代码示例来施展这一魔法。
10 0
|
1月前
|
XML Android开发 UED
"掌握安卓开发新境界:深度解析AndroidManifest.xml中的Intent-filter配置,让你的App轻松响应scheme_url,开启无限交互可能!"
【8月更文挑战第2天】在安卓开发中,scheme_url 通过在`AndroidManifest.xml`中配置`Intent-filter`,使应用能响应特定URL启动或执行操作。基本配置下,应用可通过定义特定URL模式的`Intent-filter`响应相应链接。
73 12
|
1月前
|
存储 算法 Python
【Leetcode刷题Python】297. 二叉树的序列化与反序列化
LeetCode第297题"二叉树的序列化与反序列化"的Python语言解决方案,包括序列化二叉树为字符串和反序列化字符串为二叉树的算法实现。
19 5
|
1月前
|
开发框架 缓存 前端开发
基于SqlSugar的开发框架循序渐进介绍(24)-- 使用Serialize.Linq对Lambda表达式进行序列化和反序列化
基于SqlSugar的开发框架循序渐进介绍(24)-- 使用Serialize.Linq对Lambda表达式进行序列化和反序列化
|
2月前
|
存储 安全 Java
day24:Java零基础 - 序列化与反序列化
【7月更文挑战第24天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
32 1
|
25天前
|
JSON 缓存 安全
Python pickle 二进制序列化和反序列化 - 数据持久化
Python pickle 二进制序列化和反序列化 - 数据持久化
39 0
|
2月前
|
存储 Java
JaveSE—IO流详解:对象输入输出流(序列化及反序列化)
JaveSE—IO流详解:对象输入输出流(序列化及反序列化)