首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我在XML反序列化函数中得到这个错误?

为什么我在XML反序列化函数中得到这个错误?
EN

Stack Overflow用户
提问于 2021-02-25 20:32:39
回答 2查看 45关注 0票数 0

我已经创建了两个函数,XML序列化和反序列化。问题是我得到一个关于反序列化的错误。下面你可以找到这些函数:

代码语言:javascript
运行
复制
public string Serialize(Object o)
{
    using (var writer = new StringWriter())
    {
        new XmlSerializer(o.GetType()).Serialize(writer, o);
        return writer.ToString();
    }
}

public PathDetailsMessage Deserialize(string xml)
{
    using (TextReader reader = new StringReader(xml))
    {
         XmlSerializer serializer = new XmlSerializer(typeof(PathDetailsMessage));
         return (PathDetailsMessage)serializer.Deserialize(reader);
    }
}

还有那些电话:

代码语言:javascript
运行
复制
static void Main(string[] args)
{
    PathDetailsBLL train = new PathDetailsBLL();
    PathDetailsMessage pdm = train.GetDetails();
    string xml = train.Serialize(pdm);
    PathDetailsBLL dsa = new PathDetailsBLL();
    PathDetailsMessage fds = new PathDetailsMessage();
    fds = dsa.Deserialize(pdm.ToString());
    Console.Write(fds);
    Console.ReadKey();
}

在线上return (PathDetailsMessage)serializer.Deserialize(reader);

我得到以下错误:

System.InvalidOperationException:‘XML文档(1,1)中存在错误。’

XmlException:根级别的数据无效。行1,位置1。

你能帮我吗?

谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-25 20:42:19

代码语言:js
复制
fds = dsa.Deserialize(pdm.ToString());

您希望反序列化xml变量,但是使用pdm.ToString()。尝试

代码语言:js
复制
fds = dsa.Deserialize(xml);
票数 1
EN

Stack Overflow用户

发布于 2021-02-25 20:44:47

看起来您正在序列化由返回的对象train.GetDetails()转换为XML字符串,xml,但是您正在尝试反序列化由返回的字符串(不一定是XML字符串)pdm.ToString()。你是不是打算打电话给dsa.Deserialize(xml)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66368543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档