C# 序列化包含更多列表的对象列表

标签 c# xml serialization

<分区>

我对 C# 中的 Xml.Serialization 有疑问,希望得到帮助。我有一个要序列化的 MyObject 列表。 MyObject 类包含 System.Windows.Forms.DataVisualization.Charting.DataPoint 列表,但我没有得到序列化的 MyObject 列表.

public class MyObject
{
    public Guid ID { get; set; }

    public string Name { get; set; }

    public bool Status { get; set; }

    public List<DataPoint> History { get; set; } = new List<DataPoint>();
}

我使用这段代码来序列化:

List<MyObject> lstObjects;

using (FileStream fileStrm = new FileStream([outputPath], FileMode.Create))
{
    XmlSerializer xmlSerial = new XmlSerializer(typeof(List<MyObject>));
    xmlSerial.Serialize(fileStrm, lstObjects);
}

但是我在 History 列表中得到了一个 System.InvalidOperationException。你对我有什么建议吗?

最佳答案

我针对您给定的问题创建了一个非常简单的示例。我从您的代码中获取了大部分内容作为相关示例,但我作为列表实现的数据点除外。我能够序列化 XML。希望这会有所帮助。

 class Program
{         
 static void Main(string[] args)
    {   
        Details details = new Details();
        details.ID = new Guid();
        details.Name = "testuser";
        details.Status = true;
        details.History = new List<DataPoint>();
        details.History.Add(new DataPoint() {Name = "test"});
        details.History.Add(new DataPoint() { Name = "test1" });
        details.History.Add(new DataPoint() { Name = "test2" });
        details.History.Add(new DataPoint() { Name = "test3" });
        Serialize(details);
        }


private static void Serialize(Details details)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(Details));
        using (TextWriter writer = new StreamWriter(@"C:\Users\testuser\Desktop\Xml.xml"))
        {
            serializer.Serialize(writer, details);
        }
    }
}

public  class Details
{

    public Guid ID { get; set; }

    public string Name { get; set; }

    public bool Status { get; set; }

    public List<DataPoint> History { get; set; } = new List<DataPoint>();

}
public class DataPoint
{
    public string Name { get; set; }

}

关于C# 序列化包含更多列表的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46234808/

相关文章:

c# - 正则表达式 - 订购多行 SQL 字符串

c# - 为什么这个 XPath 过滤器不起作用(最大数量)?

java - 使用 Jackson 进行非对称序列化和反序列化

java - Arrays.toString(int[]) 的反转(解析输出)

.net - WCF 不会序列化所有属性

c# - DbContext 不释放 SQLite 数据库

c# - 如何找出 ASP.NET MVC View 中的错误计数?

C# - 打开 Settings.settings 会收到有关 app.config 中无效 xml 的错误(添加 configSource 时)

android - 微调器从顶部而不是底部打开

xml - 动态应用 XSL 模板。模板位于外部 xslt 文件中并包含在主 xslt 中