首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML文档(4,11)出错

XML文档(4,11)出错
EN

Stack Overflow用户
提问于 2013-02-04 10:02:45
回答 2查看 617关注 0票数 1

目前我正在开发window游戏,它使用隔离存储来处理信息。我试图用XML来做这件事,但是我在尝试生成XML文档并从中读取时遇到了这个问题。下面是生成的代码和XML。

部分代码:

代码语言:javascript
复制
using(IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForAssembly())
{
    using(IsolatedStorageFileStream stream =
      new IsolatedStorageFileStream("class.xml", FileMode.Create, file))
    {
        XmlWriterSettings setting = new XmlWriterSettings();
        setting.Indent = true;
        using(XmlWriter writer = XmlWriter.Create(stream, setting))
        {
            XmlSerializer serializer = new XmlSerializer(typeof (Student));
            serializer.Serialize(stream, new Student()
            {
                Name = "AhLim"
            });
        }
    }

    using(IsolatedStorageFileStream stream =
      new IsolatedStorageFileStream("class.xml", FileMode.Open, file))
    {
        XmlSerializer serializer = new XmlSerializer(typeof (Student));
        studentA = (Student) serializer.Deserialize(stream);
    }
}

学生类:

代码语言:javascript
复制
public class Student
{
    public String Name { get; set; }
}

生成的XML文档:

代码语言:javascript
复制
<?xml version="1.0"?>
<Student xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <Name>AhLim</Name>
</Student>

毕竟,(4,11)处的错误as title,XML document error在反序列化时发生。我无法弄清楚这个问题,因为我在谷歌上搜索,并知道流问题。感谢大家的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-04 11:16:11

这是因为您使用的IsolatedStorageFileStream以错误的编码编写xml,请尝试使用您创建的XmlWriter。这将使用utf-8编码,Deserialization应该可以正常工作。

代码语言:javascript
复制
using(IsolatedStorageFileStream stream = new IsolatedStorageFileStream("class.xml",FileMode.Create,file))
{
     XmlWriterSettings setting = new XmlWriterSettings();
     setting.Indent = true;
     using (XmlWriter writer = XmlWriter.Create(stream, setting))
     {
         XmlSerializer serializer = new XmlSerializer(typeof(Student));
         serializer.Serialize(writer, new Student() { Name = "AhLim" });
     }
}

IsolatedStorageFileStream创建标头

代码语言:javascript
复制
<?xml version="1.0"?>

XmlWriter创建标头

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
票数 1
EN

Stack Overflow用户

发布于 2014-12-03 20:20:28

我也有同样的问题。愚蠢的微软忘记告诉你,你的学生类必须有一个公共的默认构造函数。即public Student() {},问题就会消失。

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

https://stackoverflow.com/questions/14679507

复制
相关文章

相似问题

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