gpt4 book ai didi

c# - 尝试使用通用对象序列化新的 XML 文件

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

我正在尝试使用序列化和自定义类创建一个 xml 文件,但出现异常:“生成 xml 文档时出错。”

我尝试了一个字符串列表,它可以工作,但不能使用自定义类型...有没有人知道为什么?

public class MyXML
{
List<MyClass> Mylist;
public XmlSerializer serialize;

public MyXML()
{
Mylist=new List<MyClass>();
serialize = new XmlSerializer(typeof(List<MyClass>));
}

public void Save(List<MyClass> newList)
{
using (FileStream writer = File.OpenWrite(Directory.GetCurrentDirectory() + "/files/MyNewFile.xml"))
{ serialize.Serialize(writer, newList); }
}
}

最佳答案

诀窍是:获取当前代码并将其包装在:

try {
// create and use serializer
} catch(Exception ex) {
while(ex != null) {
Debug.WriteLine(ex.Message);
ex = ex.InnerException;
}
throw;
}

当 XmlSerializer 无法序列化/反序列化某些内容时,它实际上会为您提供非常详细的原因 - 但它们隐藏在内部异常中。通过以上内容,您将能够在调试输出中看到问题所在。

通常的嫌疑人:

  • 类型必须完全公开
  • 类型必须有一个公共(public)的无参数构造函数
  • 如果实际实例是一个子类,则必须提前声明

关于c# - 尝试使用通用对象序列化新的 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13787850/

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