gpt4 book ai didi

c# - DESERIALIZE 上的 InvalidoperationException

转载 作者:太空宇宙 更新时间:2023-11-03 15:32:50 25 4
gpt4 key购买 nike

我想将一个 XML 反序列化为一个对象,但不断收到以下异常

System.InvalidOperationException: There is an error in XML document (0, 0).     ---> System.Xml.XmlException: Root element is missing.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlReader.MoveToContent()
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderBAObjectSchema.Read18_BAObjectSchema()
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
at Siemens.BASys.BAObjectCreator.SchemaHandler.Deserialize[T](String path, Boolean throwException) in ....\SchemaHandler.cs:line 34

我正在使用的代码

` public static T Deserialize<T>(string path, bool throwException)
{

T root = default(T);
try
{
using (FileStream fs = new FileStream(path, FileMode.Open))
{
using (TextReader reader = new StreamReader(fs))
{
//XmlSerializer serializer = new XmlSerializer(typeof(T));
XmlSerializer serializer = new XmlSerializer(typeof(T));
root = (T)serializer.Deserialize(reader);
}

}
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine(e.ToString());
}
return root;
}`

我使用的 XML 看起来是正确的,但不确定为什么会出现错误

以下是XML的示例部分

<?xml version="1.0" encoding="utf-8"?>
<ObjectSchema>
<Controllers>



</Controllers>
</ObjectSchema>

任何帮助将不胜感激

谢谢

最佳答案

代码和 XML 都没有问题。这是因为 StreamReader。一旦到达 EOF,当 XMLSerializer 尝试从状态为 EOF 的同一个 Stream 中读取时,流是仅向前模式的读取器 i.e. 游标位于文件末尾并且没有根标记。

而不是使用允许多次阅读的 TextReader 用户 XMLTextReader。

using (FileStream fs = new FileStream(path, FileMode.Open))
{
using (XmlReader reader = new XmlTextReader(fs))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
root = (T)serializer.Deserialize(reader);
}

}

关于c# - DESERIALIZE 上的 InvalidoperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33146248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com