📜  将对象转换为 xml c# 示例代码 - C# (1)

📅  最后修改于: 2023-12-03 15:25:18.342000             🧑  作者: Mango

将对象转换为 XML C# 示例代码

在C#编程中,有时需要将对象数据存储为XML格式以便于传输和交互。本文将介绍如何将对象转换为XML格式的C#示例代码。

使用 System.Xml.Serialization 命名空间

使用 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数据反序列化为对象并返回。

使用 LINQ to 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数据的互相转换。