繁体   English   中英

在C#中序列化XML

[英]Serialize XML in C#

我基本上是在尝试将播客添加到XML文件中,并最终使用应用程序不同部分的数据从同一XML中检索播客。

我已成功将数据写入XML,但每次重新启动应用程序(调试)并按“提交”按钮时,XML文件都会重置为0个条目。

提交代码:

  PodcastList podList = new PodcastList();

    private void btnAddPod_Click(object sender, EventArgs e)
    {
        var podUrl = txtAddPod.Text; 
        var podName = txtEnterName.Text;

        podList.AddPod(podUrl, podName, 0);

        Xml.SaveListData(podList.GetPodcastList(), "Podcasts.xml");
    }

保存为XML:

 public static void SaveListData(object obj, string filename)
    {
        var serializer = new XmlSerializer(obj.GetType());

        using (var stream = new StreamWriter(filename))
        {
            serializer.Serialize(stream, obj);
        }
    }

我猜每当我按下提交并有新对象时,应用程序都会创建一个新的XML文件。 我究竟做错了什么? 干杯

PodcastList podList = new PodcastList(); 在课堂上。

如果要保持状态,请重新加载XML文件在构造器中或加载时将文件反序列化到PodcastList,然后,您将能够保留和重用集合并将数据重写回XML文件。

由于需要打开和关闭标签,因此通常不将XML文件附加到“文件”中。 相对而言,其他类型的文本文件(如日志文件)在其中添加更有意义。

当您调用serializer.Serialize ,整个文件将被覆盖。

您的程序需要做的是在启动时读入已经存在的XML文件,并将其存储为PodcastList() 然后,您的程序可以添加到其中(在内存中),并将整个列表另存为文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM