gpt4 book ai didi

c# - 使用 XmlSerializer 序列化 ArrayList

转载 作者:太空宇宙 更新时间:2023-11-03 11:23:40 25 4
gpt4 key购买 nike

我正在 visual studio 2010 上做一个小型 c# 项目,我试图序列化一个包含我的 People 类对象的数组列表。这是我的代码块

FileStream fs = new FileStream("fs.xml", FileMode.OpenOrCreate, FileAccess.Write);
XmlSerializer xml = new XmlSerializer(typeof(ArrayList));
xml.Serialize(fs,this.array);

我在最后一行收到一条错误消息“生成 XML 文档时出错”。谁能帮我把好吗?

最佳答案

您收到此错误的原因是因为您使用的是 ArrayList并且 XmlSerializer 不知道你的 Person类(class)。一种可能性是在实例化序列化程序时向序列化程序指示已知类型:

var serializer = new XmlSerializer(typeof(ArrayList), new Type[] { typeof(Person) });

但更好的方法是使用通用的 List<T>而不是数组列表。因此,假设您有以下模型:

public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}

现在你可以得到一个人员列表:

List<Person> people = new List<Person>();
people.Add(new Person { FirstName = "John", LastName = "Smith" });
people.Add(new Person { FirstName = "John 2", LastName = "Smith 2" });

你可以序列化:

using (var writer = XmlWriter.Create("fs.xml"))
{
var serializer = new XmlSerializer(typeof(List<Person>));
serializer.Serialize(writer, people);
}

关于c# - 使用 XmlSerializer 序列化 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10160474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com