static
void
Main(
string
[] args)
{
object
[] o = Init().ToArray();
///
/// 此处可理解成:
/// 要转化的对象是什么类型,以转化格式的时候按此类型格式进行转化
Type type = o.GetType();
string
path =
@"C:\Users\wjl\Desktop\test.xml"
;
WriteXmlSerializer(type, o,path);
ReadeXmlSerializer(type,path);
}
/// <summary>
/// 读取XML,并将其转化成数组
/// </summary>
/// <param name="type"></param>
/// <param name="path"></param>
private
static
void
ReadeXmlSerializer(Type type,
string
path)
{
string
temp =
""
;
object
[] o =
new
object
[10];
FileStream fs =
new
FileStream(path, FileMode.Open, FileAccess.Read);
StreamReader sr =
new
StreamReader(fs, Encoding.UTF8);
temp = sr.ReadToEnd();
XmlSerializer xml =
new
XmlSerializer(type);
using
(MemoryStream ms =
new
MemoryStream(Encoding.UTF8.GetBytes(temp)))
{
try
{
o = (
object
[])xml.Deserialize(ms);
}
catch
(Exception)
{
throw
;
}
}
}
/// <summary>
/// 将数组转化成XML,
/// </summary>
/// <param name="type"></param>
/// <param name="o"></param>
/// <param name="path"></param>
private
static
void
WriteXmlSerializer(Type type,
object
[] o,
string
path)
{
string
temp =
""
;
XmlSerializer xml =
new
XmlSerializer(type);
using
(MemoryStream stream =
new
MemoryStream())
{
try
{
xml.Serialize(stream, o);
temp = Encoding.UTF8.GetString(stream.GetBuffer(), 0, (
int
)stream.Length);
}
catch
(Exception)
{
throw
;
}
///模拟数据库存储
StreamWriter sw =
new
StreamWriter(path,
false
,Encoding.UTF8);
sw.Write(temp);
sw.Close();
}
}