c# - 将 C# 表单序列化为 XML

标签 c# xml winforms serialization

我创建了一个客户信息表单,并将文本框绑定(bind)到表单类中的属性。这个简单的表单有 10 个文本框,它们绑定(bind)到表单中的属性

  • 客户名称
  • PhonePrimary.phoneNumber
  • PhonePrimary.phoneType
  • PhonePrimary.TextMessageOK
  • PhoneDaytime.phoneNumber
  • PhoneDaytime.phoneType
  • PhoneDaytime.TextMessageOK
  • PhoneEvening.phoneNumber
  • PhoneEvening.phoneType
  • PhoneEvening.TextMessageOK

填写这些值后,我想创建一个 XML 文件来保存这些值,以便以后可以检索它们。

using System;
using System.Windows.Forms;
using System.Xml.Serialization;
using System.IO;

namespace SimpleCustomerInfo
{
    public partial class CustomerInfoForm : Form
    {
        CustomerInfo ci;

        public CustomerInfoForm()
        {
            InitializeComponent();
            ci = new CustomerInfo();

        }

        private void btnSave_Click(object sender, EventArgs e)
        {

            XmlSerializer serializer = new XmlSerializer(typeof(CustomerInfoForm));
            TextWriter textWriter = new StreamWriter(@"C:\testme.xml");
            serializer.Serialize(textWriter, ci);
            textWriter.Close();
        }

        public partial class CustomerInfo
        {
            public string CustomerName { get; set; }
            public PhoneInfo PhonePrimary { get; set; }
            public PhoneInfo PhoneDays { get; set; }
            public PhoneInfo PhoneEvening { get; set; }
        }

        public class PhoneInfo
        {
            public string number { get; set; }
            public string type { get; set; }
            public bool textOk { get; set; }
        }

    }


}

当填写表格并按下保存按钮时,会生成错误。最内部的异常错误是: {“无法序列化 System.ComponentModel.ISite 类型的成员 System.ComponentModel.Component.Site,因为它是一个接口(interface)。”} 数据:{System.Collections.ListDictionaryInternal}

我希望得到有助于解决此错误的建议,或者关于保存和检索输入数据的不同方法的建议。

最佳答案

您保存了错误的类。尝试:

XmlSerializer serializer = new XmlSerializer(typeof(CustomerInfo));

关于c# - 将 C# 表单序列化为 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6381265/

相关文章:

c# - RedirectToAction 将我带到当前 Controller 的基本 Controller 而不是定向 Controller

c# - Debug vs Release in optimization of .net(分发给用户时的顾虑)

c# - 从其他类中查找表单实例

c# - 禁用按钮时如何避免颜色变化?

c# - 使用 C# 将 Internet Explorer 浏览器嵌入到 Winforms

c# - 由于 InitializedDatabases 列表,EntityFramework6 内存使用量较大,表数量较多

c# - 如何取消 tailable 游标上的 MoveNext 操作

xml - Mule:是否有将 XML 转换为 JSON 的简单方法

javascript - XML 和多个非唯一的 DIV

r - 将多个 XML 文件合并到 R 中的一个数据框中