using
System;
using
System.IO;
using
System.Xml.Serialization;
public class
Serializer
{
public static
void
Main
(
string
[]
args
) {
Personnel personnel = CreatePersonnel
()
;
XmlSerializer serializer =
new
XmlSerializer
(
typeof
(
Personnel
))
;
using
(
FileStream stream = File.OpenWrite
(
"Employees.xml"
)) {
serializer.Serialize
(
stream, personnel
)
;
}
}
private static
Personnel CreatePersonnel
() {
Personnel personnel =
new
Personnel
()
;
personnel.Employees =
new
Employee
[] {
new
Employee
()}
;
personnel.Employees
[
0
]
.FirstName =
"Joe"
;
personnel.Employees
[
0
]
.MiddleInitial =
"M"
;
personnel.Employees
[
0
]
.LastName =
"Lee"
;
personnel.Employees
[
0
]
.Addresses =
new
Address
[] {
new
Address
()}
;
personnel.Employees
[
0
]
.Addresses
[
0
]
.AddressType = AddressType.Home;
personnel.Employees
[
0
]
.Addresses
[
0
]
.Street =
new
string
[] {
"999 Colluden"
}
;
personnel.Employees
[
0
]
.Addresses
[
0
]
.City =
"Vancouver"
;
personnel.Employees
[
0
]
.Addresses
[
0
]
.State = State.BC;
personnel.Employees
[
0
]
.Addresses
[
0
]
.Zip =
"V5V 4X7"
;
personnel.Employees
[
0
]
.HireDate =
new
DateTime
(
2001
,
1
,
1
)
;
return
personnel;
}
}
[
Serializable
]
public enum
AddressType
{
Home,
Office
}
[
Serializable
]
public enum
State
{
[
XmlEnum
(
Name=
"British C"
)]
BC,
[
XmlEnum
(
Name=
"Sask"
)]
SK
}
[
Serializable
]
public class
Address
{
[
XmlAttribute
(
AttributeName=
"type"
)]
public
AddressType AddressType;
[
XmlElement
(
ElementName=
"street"
)]
public
string
[]
Street;
[
XmlElement
(
ElementName=
"city"
)]
public
string City;
[
XmlElement
(
ElementName=
"state"
)]
public
State State;
[
XmlElement
(
ElementName=
"zip"
)]
public
string Zip;
}
[
Serializable
]
public class
TelephoneNumber
{
[
XmlAttribute
(
AttributeName=
"type"
)]
public
AddressType AddressType;
[
XmlElement
(
ElementName=
"areacode"
)]
public
string AreaCode;
[
XmlElement
(
ElementName=
"exchange"
)]
public
string Exchange;
[
XmlElement
(
ElementName=
"number"
)]
public
string Number;
}
[
Serializable
]
public class
Employee
{
[
XmlAttribute
(
AttributeName=
"firstname"
)]
public
string FirstName;
[
XmlAttribute
(
AttributeName=
"middleinitial"
)]
public
string MiddleInitial;
[
XmlAttribute
(
AttributeName=
"lastname"
)]
public
string LastName;
[
XmlArray
(
ElementName=
"addresses"
)]
[
XmlArrayItem
(
ElementName=
"address"
)]
public
Address
[]
Addresses;
[
XmlArray
(
ElementName=
"telephones"
)]
[
XmlArrayItem
(
ElementName=
"telephone"
)]
public
TelephoneNumber
[]
TelephoneNumbers;
[
XmlAttribute
(
AttributeName=
"hiredate"
)]
public
DateTime HireDate;
}
[
Serializable
]
[
XmlRoot
(
ElementName=
"personnel"
)]
public class
Personnel
{
[
XmlElement
(
ElementName=
"employee"
)]
public
Employee
[]
Employees;
}
Set XML tag name for Serialization
最新推荐文章于 2025-08-06 11:25:43 发布