110,568
社区成员
发帖
与我相关
我的任务
分享
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();
//将xml转成object[]
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();
}
}