📅  最后修改于: 2023-12-03 15:25:18.342000             🧑  作者: Mango
在C#编程中,有时需要将对象数据存储为XML格式以便于传输和交互。本文将介绍如何将对象转换为XML格式的C#示例代码。
使用 System.Xml.Serialization 命名空间提供的类,可以将对象序列化为XML格式,以及反序列化XML数据为对象。以下是示例代码:
using System.Xml.Serialization;
using System.IO;
// 定义待序列化的对象类
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
}
// 将对象序列化为XML格式
public static string SerializeObjectToXml(Student student)
{
XmlSerializer serializer = new XmlSerializer(typeof(Student));
StringWriter writer = new StringWriter();
serializer.Serialize(writer, student);
return writer.ToString();
}
// 将XML数据反序列化为对象
public static Student DeserializeXmlToObject(string xmlString)
{
XmlSerializer serializer = new XmlSerializer(typeof(Student));
StringReader reader = new StringReader(xmlString);
return (Student)serializer.Deserialize(reader);
}
上述代码中,首先要定义待序列化的对象类,其中每个成员属性都应该有 get 和 set 方法。
接下来,使用 XmlSerializer 类创建对象序列化和反序列化实例。在将对象序列化为XML格式时,首先需要创建一个 StringWriter 对象用于将序列化后的XML字符串写入内存流;然后使用 Serialize 方法将对象序列化为XML格式字符串并返回。
在将XML数据反序列化为对象时,首先需要创建一个 StringReader 对象用于读取XML数据;然后使用 Deserialize 方法将XML数据反序列化为对象并返回。
另一种将对象转换为XML格式的方法是使用 LINQ to XML 技术,它提供了一种方便的方式来创建、修改和查询 XML 数据。以下是示例代码:
using System.Xml.Linq;
using System.Collections.Generic;
// 定义待序列化的对象类
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
}
// 将对象序列化为XML格式
public static string SerializeObjectToXml(Student student)
{
XDocument xml = new XDocument(
new XElement("Student",
new XElement("Name", student.Name),
new XElement("Age", student.Age),
new XElement("Gender", student.Gender)
)
);
return xml.ToString();
}
// 将XML数据反序列化为对象
public static Student DeserializeXmlToObject(string xmlString)
{
XDocument xml = XDocument.Parse(xmlString);
XElement studentElem = xml.Element("Student");
Student student = new Student
{
Name = studentElem.Element("Name").Value,
Age = int.Parse(studentElem.Element("Age").Value),
Gender = studentElem.Element("Gender").Value
};
return student;
}
上述代码中,同样定义了待序列化的对象类。在将对象序列化为XML格式时,使用 XDocument 和 XElement 类创建XML元素,将对象成员属性作为子元素添加到根元素中,并返回序列化后的XML字符串。
在将XML数据反序列化为对象时,使用 XDocument 类读取XML数据,查询出包含对象数据的元素,并将元素数据赋值给对象属性并返回。
以上是将对象转换为XML格式的C#示例代码,通过使用 System.Xml.Serialization 或 LINQ to XML 技术,可以方便地进行对象和XML数据的互相转换。