【问题标题】:xml deserialization problemxml反序列化问题
【发布时间】:2011-06-07 19:23:55
【问题描述】:

当我尝试使用 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的结束标签在哪里?

标签: c# .net xml-serialization


【解决方案1】:

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

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

【讨论】:

  • 非常感谢。此解决方案解决了问题。干杯马克
猜你喜欢
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-28
  • 2018-10-26
  • 1970-01-01
  • 2014-10-04
相关资源
最近更新 更多