zoukankan
html css js c++ java
序列化 与 反序列化 字符串 实例
转自:
http://www.cnblogs.com/sky1024/articles/917108.html
一个实体类
[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();
}
}
}
查看全文
相关阅读:
Android:短信发送
Android 自制拍照软件
Android 联系人的读取,查询,添加
android activity生命周期
android 让 EditText, TextView自动识别链接
android Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
FileOutputStream 读文件的模式
Android 使用 SharedPreferences 保存和加载软件参数
使用google的GSON处理JSON
Android SqlLite数据库的创建、增、删、改、查、使用事务
原文地址:https://www.cnblogs.com/wangpei/p/1522052.html
最新文章
【译著】《精通ASP.NET MVC 3框架》翻译目录
【译著】第1章 伟大的思想 — 《精通ASP.NET MVC 3框架》
【译著】第8章 SportsStore:导航与购物车 — 《精通ASP.NET MVC 3框架》
【译著】第9章 SportsStore:管理 — 《精通ASP.NET MVC 3框架》
【译著】20章 jQuery — 《精通ASP.NET MVC 3框架》
Android 多个Activity 跳转及传参
Windows 7 with SP1中英文原版MSDN下载汇总(全版本收录完毕)
android 取屏幕分辩率
程序员的艺术:排序算法舞蹈
Ubuntu 11.04 下安装配置 JDK 7
热门文章
android 发送通知栏消息,点击后打开指定网页
如何同时启动两个Android模拟器
SQL 列出某列有重复的记录
Android 使用JUnit进行单元测试
JAVA正则表达式匹配,替换,查找,切割
UniDAC 的 RecordCount 属性注意事项
android 文本文件(含SD卡)读写
android 让 TextView 自带滚动条
MSDN Windows8 中文版 下载地址
android 取网址的HTML代码
Copyright © 2011-2022 走看看