runxinzhi.com
首页
百度搜索
.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内容的几种方式。
相关阅读:
linux学习
linux学习--常用基本命令
expect学习
linux学习-cut,ssh keygen ,find
expect
告别痛苦,快乐学习Pandas!开源教程《Joyful-Pandas》发布
iBooker 财务提升星球 2020.2~3 热门讨论
计算机电子书 2020 CDNDrive 备份(预览版)
poj2017
poj2000
原文地址:https://www.cnblogs.com/chenjunbiao/p/1760275.html
最新文章
认识IL代码---从开始到现在 <第二篇>
从Hello, world开始认识IL <第一篇>
windbg命令详解
WinDbg配置和使用基础
C# 内存分配
Lambda表达式详解
C# 如何查看源程序的IL代码
When does compiler create default and copy constructors in C++?
C++ default constructor | Built-in types
Copy elision in C++
热门文章
Playing with Destructors in C++
Private Destructor
Default Constructors
When do we use Initializer List in C++?
Initialization of data members
When should we write our own copy constructor?
Does compiler create default constructor when we write our own?
ubuntu快捷键
linux 学习
每天都在为辞职做准备
Copyright © 2020-2023
润新知