XML文件返回空

时间:2015-08-12 15:21:20

标签: c# xml vb.net

我正在开发一个项目,我希望用户能够将字符串保存为XML。该程序能够将XML文件加载到程序中,但无法另存为XML。 我之前在C#上做过这个项目,我希望在vb.net中使用完全相同的功能

这是我保存为XML文件的vb.net代码:

这是按钮点击:

  Private Sub ExportToXMLFileToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExportToXMLFileToolStripMenuItem.Click
        Try
            If (SaveFileDialog1.ShowDialog = DialogResult.OK) Then
                Dim thefilename As String = SaveFileDialog1.FileName
                SaveXML(thefilename)
            End If
        Catch ex As Exception
            MessageBox.Show(ex.ToString, "Error in exporting XML")
        End Try
    End Sub 

这是SaveXML函数:

Private Sub SaveXML(ByVal fileName As String)
        'Animal array
        Dim staff As String = staffForm.TheName
        Dim staffmgr As ListManager(Of String) = New ListManager(Of String)
        Dim index As Integer = 0
        Do While (index < staffmgr.Count)
            staff = staffmgr.GetAt(index)
            index = (index + 1)
        Loop
        Dim XMLSerial As XMLSerializerUtillity = New XMLSerializerUtillity
        XMLSerial.SerializeToFile(fileName, staff)
    End Sub

XMLSerializerUtillity类和SerializeToFile函数:

Public Class XMLSerializerUtillity
        Public Function SerializeToFile(Of T As {Class})(ByVal filePath As String, ByVal obj As T) As Boolean
            Dim file As Boolean = True
            Dim serializer As XmlSerializer = New XmlSerializer(GetType(T))
            Dim writer As TextWriter = New StreamWriter(filePath)
            Try
                serializer.Serialize(writer, obj)
            Finally
                If (Not (writer) Is Nothing) Then
                    writer.Close()
                End If
            End Try
            Return file
        End Function

问题是保存后创建的XML文件为空。它没有按预期保存任何字符串。

有谁知道这个问题以及如何解决它?

如果有必要,我可以包含有效的C#代码。它与我所拥有的代码基本相同&#34;翻译&#34;进入vb.net代码。

更新

以下是适用的C#代码:

按下

按钮:

 private void exportToToolStripMenuItem_Click(object sender, EventArgs e)
    {
        try
        {

            if(saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string thefilename = saveFileDialog1.FileName;
                SaveXML(thefilename);
            }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Error in exporting XML");
            }
        }

 private void SaveXML(string fileName)
        {
            //Animal array
            string staff = staffForm.TheName;
            ListManager<string> staffmgr = new ListManager<string>();
            for (int index = 0; index < staffmgr.Count; index++)
            {
                staff = staffmgr.GetAt(index);
            }
            XMLSerializerUtillity XMLSerial = new XMLSerializerUtillity();
            XMLSerial.SerializeToFile(fileName, staff);
        }




 public class XMLSerializerUtillity
    {
       /// <summary>
       /// Serialize to XML
       /// </summary>
       /// <typeparam name="T"></typeparam>
       /// <param name="the filePath"></param>
       /// <param name=" the obj"></param>
       /// <returns></returns>
        public bool SerializeToFile<T>(string filePath, T obj)
        {
            bool file = true;

            XmlSerializer serializer = new XmlSerializer(typeof(T));
            TextWriter writer = new StreamWriter(filePath);
            try
            {
                serializer.Serialize(writer, obj);
            }
            finally
            {
                if (writer != null)

                    writer.Close();
            }

            return file;
        }

更新2:

当我尝试时:serializer.Serialize(writer, "Hello")我确实工作了。 但是,我想要它做的是保存StaffForm.TheName属性

中的内容

0 个答案:

没有答案