zoukankan
html css js c++ java
.Net下的XML序列化(一)
XML序列化可以让你使用class-friendly的方式操作XML。我们可以方便的将某个类序列化成XML字符串或文件,这里是一个例子。
Address类:
[Serializable]
public
class
Address
{
public
Address()
{}
public
string
Street
{
get
{
return
street; }
set
{ street
=
value; }
}
private
string
street;
public
string
City
{
get
{
return
city; }
set
{ city
=
value; }
}
private
string
city;
public
string
State
{
get
{
return
state; }
set
{ state
=
value; }
}
private
string
state;
}
Customer类:
[Serializable]
public
class
Customer
{
public
Customer()
{}
public
string
Name
{
get
{
return
name; }
set
{ name
=
value; }
}
private
string
name;
public
Address Address
{
get
{
return
address; }
set
{ address
=
value; }
}
private
Address address;
}
必须在将要序列化的类上加入特性[Serializable]
生成测试数据:
public
static
Customer GetGustomer()
{
Customer customer
=
new
Customer();
Address address
=
new
Address();
address.City
=
"
北京
"
;
address.State
=
"
丰台
"
;
address.Street
=
"
马家堡西里
"
;
customer.Address
=
address;
customer.Name
=
"
BillChen
"
;
return
customer;
}
进行序列化操作。
[STAThread]
static
void
Main(
string
[] args)
{
Customer customer
=
Customers.GetGustomer();
SerializerCustomer1(customer);
SerializerCustomer2(customer);
SerializerCustomer3(customer);
Console.ReadLine();
}
private
static
void
SerializerCustomer1(Customer customer)
{
XmlSerializer ser
=
new
XmlSerializer(
typeof
(Customer));
FileStream stream
=
new
FileStream(
"
test.xml
"
, FileMode.OpenOrCreate);
ser.Serialize( stream, customer );
stream.Close();
}
private
static
void
SerializerCustomer2(Customer customer)
{
XmlSerializer ser
=
new
XmlSerializer(
typeof
(Customer));
MemoryStream stream
=
new
MemoryStream(
100
);
ser.Serialize( stream, customer );
stream.Position
=
0
;
using
(StreamReader reader
=
new
StreamReader(stream, Encoding.UTF8))
{
Console.Write(reader.ReadToEnd());
}
}
private
static
void
SerializerCustomer3(Customer customer)
{
XmlSerializer ser
=
new
XmlSerializer(
typeof
(Customer));
MemoryStream stream
=
new
MemoryStream(
100
);
XmlTextWriter writer
=
new
XmlTextWriter(stream, Encoding.UTF8);
writer.Formatting
=
Formatting.Indented;
//
缩进
ser.Serialize( writer, customer );
stream.Position
=
0
;
using
(StreamReader reader
=
new
StreamReader(stream, Encoding.UTF8))
{
string
line;
while
((line
=
reader.ReadLine())
!=
null
)
{
Console.WriteLine(line);
}
}
writer.Close();
}
以上是序列化指定的类,及读取序列化后的XML内容的几种方式。
查看全文
相关阅读:
FilterLog代码分析
Session
关于XML的技术详情----XML定义 用途 工作原理及未来
javaee思维导图
互联网应用与企业级应用的区别
javaee课程目标
Recycle -- 项目总结
python3.6学习笔记2基础语法
python3.6学习笔记1认识python
CentOS6.5下Virtualenv搭建Python3开发环境
原文地址:https://www.cnblogs.com/chenjunbiao/p/1760275.html
最新文章
自动生成四则运算
自我介绍与构建之法
分析LogFilter
Filter的例子
Session
XML定义 用途 工作原理及未来
互联网应用与企业级应用的区别
对Java ee 的课程目标
Recycle
Android计时器
热门文章
初步了解Ajax
APPLET基础
FilterLog代码分析
LoggingFilter Session 以及Async
Session
XML定义 用途 工作原理及未来
互联网应用与企业应用的区别
aim
初步了解Ajax
APPLET基础
Copyright © 2011-2022 走看看