using
System;
using
System.Xml;
using
System.Xml.Serialization;
using
System.IO;
public class
SerializeXml
{
private static
void
Main
() {
CarList catalog =
new
CarList
(
"New List"
, DateTime.Now.AddYears
(
1
))
;
Car
[]
cars =
new
Car
[
2
]
;
cars
[
0
]
=
new
Car
(
"Car 1"
,
12342.99
m
)
;
cars
[
1
]
=
new
Car
(
"Car 2"
,
21234123.9
m
)
;
catalog.Cars = cars;
XmlSerializer serializer =
new
XmlSerializer
(
typeof
(
CarList
))
;
FileStream fs =
new
FileStream
(
"CarList.xml"
, FileMode.Create
)
;
serializer.Serialize
(
fs, catalog
)
;
fs.Close
()
;
catalog =
null
;
// Deserialize the order from the file.
fs =
new
FileStream
(
"CarList.xml"
, FileMode.Open
)
;
catalog =
(
CarList
)
serializer.Deserialize
(
fs
)
;
// Serialize the order to the Console window.
serializer.Serialize
(
Console.Out, catalog
)
;
}
}
[
XmlRoot
(
"carList"
)]
public class
CarList
{
[
XmlElement
(
"catalogName"
)]
public
string ListName;
// Use the date data type (and ignore the time portion in the serialized XML).
[
XmlElement
(
ElementName=
"expiryDate"
, DataType=
"date"
)]
public
DateTime ExpiryDate;
[
XmlArray
(
"cars"
)]
[
XmlArrayItem
(
"car"
)]
public
Car
[]
Cars;
public
CarList
() {
}
public
CarList
(
string catalogName, DateTime expiryDate
) {
this
.ListName = catalogName;
this
.ExpiryDate = expiryDate;
}
}
public class
Car
{
[
XmlElement
(
"carName"
)]
public
string CarName;
[
XmlElement
(
"carPrice"
)]
public
decimal CarPrice;
[
XmlElement
(
"inStock"
)]
public
bool InStock;
[
XmlAttributeAttribute
(
AttributeName=
"id"
, DataType=
"integer"
)]
public
string Id;
public
Car
() {
}
public
Car
(
string carName, decimal carPrice
) {
this
.CarName = carName;
this
.CarPrice = carPrice;
}
}