当我们在应用程序中,储存一些数据的时候,我们可能会采用XMl的储存数据方式,在我们如果数据都是在对象当中 如学生统计系统,数据 采用XMl的数据储存.我们可以将收集数据的时候创建一个收集的类,给类创定好属性,在创建类之初要必须初始化我们定义的属性,在收集好数据后,通常就是要储存了,我们可以用 System.Xml下的XmlSerializer 将类对象序列化或者是反序列化为我们需要的Xml文件
示例 先创建好类 Student
public class Student
{
public int id { get; set; }
public string Name { get; set; }
public Point3D MyProperty { get; set; }
public int gender { get; set; }
public string address { get; set; }
public Student(int id, string name, Point3D myProperty, int gender, string address)
{
this.id = id;
Name = name;
MyProperty = myProperty;
this.gender = gender;
this.address = address;
}
private Student()
{
}
}
示例将student类进行一个转换为XML数据直接写入绝对路径 文件名为STUDENR.xml
Student Student1 = new Student(100,"lt",new Point3D(1,2,3),0,"湖南");
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Student));
xmlSerializer.Serialize(File.OpenWrite("STUDENR.xml"), Student1);
在bin->bebug下文件SYUDENT.xml打开 如下所示(成功写入)
<?xml version="1.0"?>
<Student xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<id>100</id>
<Name>lt</Name>
<MyProperty>
<X>1</X>
<Y>2</Y>
<Z>3</Z>
</MyProperty>
<gender>0</gender>
<address>湖南</address>
</Student>
其中还有将XML反序列化 示例
还有很多使用实例方法,我将封装在如下代码类库中
public class Serializable
{
/// <summary>
/// 写入指定位置XML
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="value"></param>
public static void Serialize<T>(T value)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
xmlSerializer.Serialize(File.Open("ab.xml", FileMode.OpenOrCreate), value);
}
/// <summary>
/// 将对象序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="value"></param>
/// <returns></returns>
public static string Seriaize<T>(T value)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
StringWriter sw = new StringWriter();
xmlSerializer.Serialize(sw, value);
return sw.ToString();
}
/// <summary>
/// 将Xml字符串反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="value"></param>
/// <returns></returns>
public static T deserialize<T>(string value)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
StringReader stringReader = new StringReader(value);
return (T)xmlSerializer.Deserialize(stringReader);
}
}