我的代码中有错误。我想反序列化不同的XML
文件,并在TextBox
中打开它们
我遇到的问题是当我采用文件的路径时,我认为这是错误所在,因为你需要一个确切的文件路径(例如):
FileStream FS = new FileStream("example.analy", FileMode.Open, FileAccess.Read);
但是我用它替换了它:
FileStream FS = new FileStream (openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
读取在openfiledialog中选择的文件
这是我的完整代码:
XmlSerializer XS = new XmlSerializer(typeof(Reminders.Information));
FileStream FS = new FileStream (openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
Information Info = (information)XS.Deserialize();
Settings.Default.Counter++;
Settings.Default.Save();
问题是当我尝试打开文件时,会出现以下错误:
System.InvalidOperationException:'错误在XML文档(0,0)中。 内部异常
XmlException:缺少根元素。
答案 0 :(得分:0)
您需要将文件传输到XML阅读器中,然后才能将其序列化 - https://msdn.microsoft.com/en-us/library/tz8csy73(v=vs.110).aspx
// Create an instance of the XmlSerializer specifying type and namespace.
XmlSerializer serializer = new
XmlSerializer(typeof(OrderedItem));
// A FileStream is needed to read the XML document.
FileStream fs = new FileStream(filename, FileMode.Open);
XmlReader reader = XmlReader.Create(fs);
// Declare an object variable of the type to be deserialized.
OrderedItem i;
// Use the Deserialize method to restore the object's state.
i = (OrderedItem)serializer.Deserialize(reader);
fs.Close();
据我所知,您正在尝试不反序列化......并且没有任何内容不是有效的XML文档