C# 中 如何对集合对象 反序列化
时间: 2024-05-16 21:15:57 浏览: 114
使用C#进行序列化和反序列化
在 C# 中,可以使用 `System.Xml.Serialization.XmlSerializer` 类来对集合对象进行反序列化。以下是一个简单的示例:
```csharp
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;
// 定义一个包含多个对象的集合
[XmlRoot("MyCollection")]
public class MyCollection
{
[XmlElement("MyObject")]
public List<MyObject> Items { get; set; }
}
public class MyObject
{
[XmlAttribute("Id")]
public int Id { get; set; }
[XmlElement("Name")]
public string Name { get; set; }
}
// 反序列化集合对象
var serializer = new XmlSerializer(typeof(MyCollection));
using (var stream = new FileStream("mycollection.xml", FileMode.Open))
{
var collection = (MyCollection)serializer.Deserialize(stream);
foreach (var item in collection.Items)
{
// 处理每个对象
}
}
```
在此示例中,我们定义了一个 `MyCollection` 类,其中包含一个名为 `Items` 的 `List<MyObject>` 属性。`MyObject` 类包含两个属性,`Id` 和 `Name`。我们将 `MyCollection` 类标记为 `XmlRoot`,并将 `Items` 属性标记为 `XmlElement`,以便在序列化时可以正确生成 XML。然后,我们使用 `XmlSerializer` 类的 `Deserialize` 方法来反序列化 XML 文件,并将结果转换为 `MyCollection` 对象。最后,我们可以遍历 `Items` 列表,处理每个对象。
阅读全文