您的位置:首页 > 编程语言 > C#

C#对象转换为XML字符串和将Xml字符串转换为C#对象

2014-04-04 18:48 274 查看
using System.Xml.Serialization;

namespace ConsoleApplication4
{
[Serializable]
public struct Priority
{
public String Name;
public Boolean State;
public Priority(String name, Boolean State)
{
Name = name;
this.State = State;
}
}
[Serializable]
public class Person
{
public String Name{get;set;}
public Int32 Age { get; set; }
private List<Priority> data = new List<Priority>();
public List<Priority> Data
{
get { return data; }
set { data = value; }
}
}
class Program
{
static void Main(string[] args)
{
Person p = new Person()
{
Name = "Job",
Age = 12
};
p.Data.Add(new Priority("Token",true));
p.Data.Add(new Priority("Hasen", false));

//下面将一个对象序列化成一个Xml的字符串
XmlSerializer xs = new XmlSerializer(p.GetType());
MemoryStream ms = new MemoryStream();
xs.Serialize(ms, p);//将一个对象序列化成XML保存在内存流中
//获取内存流中的字符串
String XmlString = Encoding.UTF8.GetString(ms.ToArray());
Console.WriteLine(XmlString);
Console.WriteLine("字符个数为:"+XmlString.Count());
ms.Close();

//下面将XML字符串反序列成C#对象
MemoryStream ms1 = new MemoryStream(Encoding.UTF8.GetBytes(XmlString));
Person p1 = xs.Deserialize(ms1) as Person;
Console.WriteLine("Name:"+p1.Name +" Age:"+p1.Age +" Token:"+p1.Data[0].State);
ms1.Close();
Console.ReadKey();
}
}
}


运行效果为:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: