Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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/3/sockets/2.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# XML序列化程序:为什么反序列化不成功';我的情况不行吗?_C#_Xml Serialization - Fatal编程技术网

C# XML序列化程序:为什么反序列化不成功';我的情况不行吗?

C# XML序列化程序:为什么反序列化不成功';我的情况不行吗?,c#,xml-serialization,C#,Xml Serialization,伙计们。我使用XMLSerializer保留和恢复程序选项。代码如下: using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Xml; using System.Windows.Forms; using System.Xml.Serialization; namespace XMLAsk { class Test { pub

伙计们。我使用XMLSerializer保留和恢复程序选项。代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml;
using System.Windows.Forms;
using System.Xml.Serialization;

namespace XMLAsk
{
    class Test
    {
        public static string ConfigFileName = "C:\\Work\\TMP\\Config.xml";

        public static void Main()
        {

            MyOptions myOptions = new MyOptions();
            myOptions.Title = "Hello, world!";
            myOptions.Rating = 15;

            SerializeToXML(myOptions);

            MyOptions myOptions2 = new MyOptions();
            DeserializeFromXML(myOptions2);

            MessageBox.Show(myOptions2.Title);


        }

        public static void SerializeToXML(MyOptions myOptions)
        {

            XmlSerializer serializer = new XmlSerializer(typeof(MyOptions));
            TextWriter textWriter = new StreamWriter(ConfigFileName);
            serializer.Serialize(textWriter, myOptions);
            textWriter.Close();

        }

        public static void DeserializeFromXML(MyOptions myOptions2)
        {

            XmlSerializer deserializer = new XmlSerializer(typeof(MyOptions));
            TextReader textReader = new StreamReader(ConfigFileName);
            myOptions2 = (MyOptions)deserializer.Deserialize(textReader);
            textReader.Close();

        }
    }

    public class MyOptions
    {


        private string title;
        private int rating;

        public string Title
        {
            get { return title;  }
            set { title = value; }
        }

        public int Rating
        {
            get { return rating; }
            set { rating = value;}
        }

   }

}
序列化确实有效。我得到以下xml文件(Config.xml):


- 
你好,世界!
15
但反序列化似乎不起作用。例如,当我使用MessageBox.Show(myOptions2.Title)显示其中一个选项时(参见上面的代码),然后我得到一个空字符串

为什么??我的代码怎么了

myOptions2 = (MyOptions)deserializer.Deserialize(textReader);
您需要返回该对象。或者使用ref参数

您需要返回该对象。或者使用ref参数

myOptions2 = (MyOptions)deserializer.Deserialize(textReader);