XML反序列化问题

3

当我尝试使用XmlSerializer将一个xml文件反序列化为我自己创建的一个类时,出现了问题。这个xml文件的内容如下:

<UserInfoView xmlns="http://schemas.datacontract.org/2004/07/iEverydayLog.Models.ViewModel" 
              xmlns:i="http://www.w3.org/2001/XMLSchema-instance">

    <Address>Ultimo NSW</Address>

    <Id>685c7109-56c5-4a69-82d6-c9a286225d7e</Id>

    <Name>Tester Name</Name>

    <NumberOfCards>1</NumberOfCards>

</UserInfoView>

在这个错误消息中,出现了“XML文档(1,2)”的错误。

但是当我删除这些词语时:

xmlns="http://schemas.datacontract.org/2004/07/iEverydayLog.Models.ViewModel"     xmlns:i="http://www.w3.org/2001/XMLSchema-instance"

它可以正常工作,有人知道这里发生了什么吗?

我的类定义如下:

    public class UserInfoView
    {
        public string Address;

        public string Name;

        public string Id;

        public int NumberOfCards;
    }

UserInfoView 的闭合标签在哪里? - leppie
1个回答

4

有一个默认的XML命名空间;您可以通过添加[XmlRoot]来告诉它期望的命名空间来解决此问题:

[XmlRoot(Namespace="http://schemas.datacontract.org/2004/07/iEverydayLog.Models.ViewModel")]
public class UserInfoView {...}

非常感谢。问题已经通过这个解决方案得到解决。祝福Marc。 - user572652

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接