会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
敲打着键盘的日子
也许生活就是这样,你可以为别人编织快乐的程序,无意中却让自己的人生一片乱码。
博客园
首页
新随笔
联系
订阅
管理
随笔 - 10
文章 - 32
评论 - 15
阅读 -
18333
序列化 与 反序列化 字符串 实例
一个实体类
[Serializable]
public
class
MyObject
{
public
MyObject()
{
x
=
y
=
height
=
width
=
0
;
}
private
int
x;
private
int
y;
private
int
height;
private
int
width;
private
string
name;
public
string
Name
{
get
{
return
name;
}
set
{
name
=
value;
}
}
public
int
Height
{
get
{
return
height;
}
set
{
height
=
value;
}
}
public
int
Width
{
get
{
return
width;
}
set
{
width
=
value;
}
}
public
int
X
{
get
{
return
x;
}
set
{
x
=
value;
}
}
public
int
Y
{
get
{
return
y;
}
set
{
y
=
value;
}
}
}
Aspx 页面
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
Default.aspx.cs
"
Inherits
=
"
_Default
"
%>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
runat
="server"
>
<
title
>
无标题页
</
title
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
div
>
<
asp:TextBox
ID
="TextBox1"
runat
="server"
></
asp:TextBox
><
br
/>
<
asp:TextBox
ID
="TextBox2"
runat
="server"
></
asp:TextBox
><
br
/>
<
asp:TextBox
ID
="TextBox3"
runat
="server"
></
asp:TextBox
><
br
/>
<
asp:TextBox
ID
="TextBox4"
runat
="server"
></
asp:TextBox
><
br
/>
<
asp:TextBox
ID
="TextBox5"
runat
="server"
></
asp:TextBox
><
br
/>
<
br
/>
<
asp:Button
ID
="Button1"
runat
="server"
OnClick
="Button1_Click"
Text
="序列化"
Width
="75px"
/>
<
br
/>
<
br
/>
<
asp:Label
ID
="Label1"
runat
="server"
></
asp:Label
><
br
/>
<
br
/>
<
asp:Button
ID
="Button2"
runat
="server"
OnClick
="Button2_Click"
Text
="反序列化"
/><
br
/>
<
br
/>
<
asp:TextBox
ID
="TextBox6"
runat
="server"
></
asp:TextBox
>
<
br
/>
<
asp:TextBox
ID
="TextBox7"
runat
="server"
></
asp:TextBox
><
br
/>
<
asp:TextBox
ID
="TextBox8"
runat
="server"
></
asp:TextBox
><
br
/>
<
asp:TextBox
ID
="TextBox9"
runat
="server"
></
asp:TextBox
><
br
/>
<
asp:TextBox
ID
="TextBox10"
runat
="server"
></
asp:TextBox
></
div
>
</
form
>
</
body
>
</
html
>
cs页面代码:
using
System;
using
System.Data;
using
System.Configuration;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
System.Xml;
using
System.Xml.Serialization;
using
System.IO;
public
partial
class
_Default : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
protected
void
Button1_Click(
object
sender, EventArgs e)
{
MyObject myobj
=
new
MyObject();
myobj.Name
=
TextBox1.Text;
myobj.Height
=
Convert.ToInt32(TextBox2.Text);
myobj.Width
=
Convert.ToInt32(TextBox3.Text);
myobj.X
=
Convert.ToInt32(TextBox4.Text);
myobj.Y
=
Convert.ToInt32(TextBox5.Text);
Label1.Text
=
Serialiaze(myobj);
}
/**/
///
<summary>
///
序列化成字符串
///
</summary>
///
<param name="obj"></param>
///
<returns>
序列化后的字符串
</returns>
public
static
string
Serialiaze(
object
obj)
{
XmlSerializer xs
=
new
XmlSerializer(obj.GetType());
MemoryStream ms
=
new
MemoryStream();
XmlTextWriter xtw
=
new
XmlTextWriter(ms, System.Text.Encoding.UTF8);
xtw.Formatting
=
Formatting.Indented;
xs.Serialize(xtw, obj);
ms.Seek(
0
, SeekOrigin.Begin);
StreamReader sr
=
new
StreamReader(ms);
string
str
=
sr.ReadToEnd();
xtw.Close();
ms.Close();
return
str;
}
/**/
///
<summary>
///
反序列化 从字符串
///
</summary>
///
<param name="xml">
xml字符串
</param>
///
<param name="type">
要生成的对象类型
</param>
///
<returns>
反序列化后的对象
</returns>
public
static
object
Deserialize(
string
xml, Type type)
{
XmlSerializer xs
=
new
XmlSerializer(type);
StringReader sr
=
new
StringReader(xml);
object
obj
=
xs.Deserialize(sr);
return
obj;
}
protected
void
Button2_Click(
object
sender, EventArgs e)
{
string
str
=
Label1.Text;
MyObject myobj
=
(MyObject)Deserialize(str,
typeof
(MyObject));
if
(myobj
!=
null
)
{
TextBox6.Text
=
myobj.Name;
TextBox7.Text
=
myobj.Height.ToString();
TextBox8.Text
=
myobj.Width.ToString();
TextBox9.Text
=
myobj.X.ToString();
TextBox10.Text
=
myobj.Y.ToString();
}
}
}
分类:
.Net
好文要顶
关注我
收藏该文
微信分享
水静痕迹
粉丝 -
1
关注 -
9
+加关注
1
0
升级成为会员
posted @
2007-10-08 15:09
水静痕迹
阅读(
4863
) 评论(
4
)
编辑
收藏
举报
刷新页面
返回顶部
登录后才能查看或发表评论,立即
登录
或者
逛逛
博客园首页
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
编辑推荐:
·
Linux系列:如何用 C#调用 C方法造成内存泄露
·
AI与.NET技术实操系列(二):开始使用ML.NET
·
记一次.NET内存居高不下排查解决与启示
·
探究高空视频全景AR技术的实现原理
·
理解Rust引用及其生命周期标识(上)
阅读排行:
·
物流快递公司核心技术能力-地址解析分单基础技术分享
·
.NET 10首个预览版发布:重大改进与新特性概览!
·
AI与.NET技术实操系列(二):开始使用ML.NET
·
单线程的Redis速度为什么快?
·
展开说说关于C#中ORM框架的用法!
公告
昵称:
水静痕迹
园龄:
17年5个月
粉丝:
1
关注:
9
+加关注
<
2025年3月
>
日
一
二
三
四
五
六
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
积分与排名
积分 - 7484
排名 - 143451
随笔档案
2008年6月(1)
2007年11月(1)
2007年10月(5)
2007年9月(3)
文章分类
.Net(17)
Ajax设计(1)
IOC(2)
ORM(3)
SQL(5)
Web Services(1)
设计模式(3)
阅读排行榜
1. 数据库中的表对应生成实体类 只有属性 没有行为 -- 贫血模型 贴子(491)
2. 博客园T恤 ^-^ 写照(455)
3. [转载]郭靖同学的成功之路(339)
4. [转]谨以此文献给才毕业2--5年的朋友(322)
5. [转贴]一篇很感动的文章--献给所有已婚的男士- -(315)
评论排行榜
1. 博客园T恤 ^-^ 写照(1)
2. [转]谨以此文献给才毕业2--5年的朋友(1)
3. [转载]盖茨十条成功箴言 值得一生铭记(组图)(1)
4. 二十个经典感悟 网上整理(1)
5. [转贴]一篇很感动的文章--献给所有已婚的男士- -(1)
推荐排行榜
1. [转]谨以此文献给才毕业2--5年的朋友(1)
2. [转贴]一篇很感动的文章--献给所有已婚的男士- -(1)
最新评论
1. Re:[转]C#定时执行某个程序
对我有用。
--梨公子
2. Re:序列化 与 反序列化 字符串 实例
顶一下
--孤心自泪
3. Re:序列化 与 反序列化 字符串 实例
支持一下
--Brad Xue
4. Re:[转贴]一篇很感动的文章--献给所有已婚的男士- -
情感是我们最难割舍的东西~
--KiweenJain
5. Re:序列化 与 反序列化 字符串 实例
挺好,谢谢了 我用在AutoCAD的objectArx共享内存处理中非常有用
--houlinbo
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!