Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储在成员字符串中的MaskedText值的Xml序列化_C#_Xml_Winforms_Xml Serialization_Maskedtextbox - Fatal编程技术网

C# 存储在成员字符串中的MaskedText值的Xml序列化

C# 存储在成员字符串中的MaskedText值的Xml序列化,c#,xml,winforms,xml-serialization,maskedtextbox,C#,Xml,Winforms,Xml Serialization,Maskedtextbox,//更新 我已经添加了更正,并提供了完整的Form1.c代码 为了简单起见,我把它简化了一点。所以我所有的表单控件都设置好了。为了回答这个问题,日期作为DateTimePicker(短),员工编号作为maskedTextBox(“###-####”),员工姓名作为简单文本框,SS编号作为maskedTextBox(标准SSNum),等等。为了处理所有这些数据,我创建了一个名为Employee_data的类,如下所示 namespace Employee { public class Em

//更新 我已经添加了更正,并提供了完整的Form1.c代码

为了简单起见,我把它简化了一点。所以我所有的表单控件都设置好了。为了回答这个问题,日期作为DateTimePicker(短),员工编号作为maskedTextBox(“###-####”),员工姓名作为简单文本框,SS编号作为maskedTextBox(标准SSNum),等等。为了处理所有这些数据,我创建了一个名为Employee_data的类,如下所示

namespace Employee
{
    public class Employee_Data
    {
        //Make Members Xml elements
        [XmlElement("EmployeeNumber")]
        public String EmployeeNumber {get; set;}
        [XmlElement("Date")]
        public DateTime Date {get; set;}
        [XmlElement("EmployeeName")]
        public String EmployeeName {get; set;}
        [XmlElement("SSNumber")]
        public String SSNumber {get; set;}


    }
}
我在Form1.cs中创建了一个名为e_d的对象,并在VS中使用了自动事件处理。调试器显示,这些值被很好地存储到类对象中(maskedText值包括破折号)。但是,一旦我尝试按如下所示序列化数据,屏蔽的文本值就会从xml文件中忽略

    using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Serialization;
using System.IO;
using System.Xml;

namespace Employee
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        Employee_Data e_d = new Employee_Data();

        private void EmployyeeNumber_TextChanged(object sender, EventArgs e)
        {
            e_d.EmployeeNumber=EmployeeNumber.Text;
        }

        private void Date_ValueChanged(object sender, EventArgs e)
        {
            e_d.Date=Date.Value;

        }

        private void EmployeeName_TextChanged(object sender, EventArgs e)
        {
            e_d.EmployeeName=EmployeeName.Text;
        }



        private void SSNumber_ValueChanged(object sender, EventArgs e)
        {
          e_d.SSNumber=SSNumber.Text;
    }


    private void saveButton_Click(object sender, EventArgs e)
    {
        saveFileDialog1.DefaultExt = "xml";
        saveFileDialog1.Filter = "XML File (.xml)|*.xml";
        saveFileDialog1.AddExtension = true;
        saveFileDialog1.RestoreDirectory = true;
        saveFileDialog1.ShowDialog();
    }


private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
    string name = saveFileDialog1.FileName;


    using (TextWriter texWrt =  new StreamWriter(saveFileDialog1.FileName))
    {
        XmlSerializer serializer = new XmlSerializer(typeof(Employee_Data));
        serializer.Serialize(texWrt, e_d);
    }
}

我已经研究过这个问题,但似乎没有太多关于这个特定主题的内容

答案是事件处理或程序员失败。当程序员为文本输入手工编写事件处理程序时(因为VS中的默认值是MaskInputRejected),他忘记了设置事件处理程序。我一定要和程序员谈谈这整件事,大家。但在这个过程中,他学到了很多关于csharp和xml的知识。感谢所有投入时间帮助的人

如果要在下一行用
e\u d
覆盖该对象,则无需执行
new Employee\u Data()
。谢谢。也改变了这一点。