【发布时间】:2013-07-09 15:12:09
【问题描述】:
我正在尝试使用带有 Datacontract 类的 Atom 提要强制转换 XML,但我失败了......
我的代码如下:
Content.ReadAsAsync<ArticleDTOs>()
[Serializable]
[DataContract(Namespace = "urn:schemas-something:some", Name = "document")]
public class ArticleDTOs
{
[DataMember(Name = "entry")]
public entry entry { get; set; }
}
[Serializable]
[DataContract(Namespace ="http://www.w3.org/2005/Atom")]
public class entry
{
[DataMember(Name = "id")]
public string id { get; set; }
}
}
我感觉问题与
中的命名空间声明有关datacontract....我应该如何设置命名空间以正确读取 XML 命名空间???
这是我必须反序列化的 XML
<?xml version="1.0" encoding="utf-8"?>
<document id="m.fy7c2fsvzxtv" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="urn:schemas-something:some">
<atom:entry><atom:id>m.fy7c2fsvzxtv</atom:id><atom:title>test title</atom:title><atom:published>2013-07-08T17:21:06.4035574+01:00</atom:published><atom:updated>2013-07-08T17:21:06.4050577+01:00</atom:updated><subheadline>test sub headline</subheadline><standfirst>desc</standfirst><keywords>keywords</keywords>
<atom:content>body with Encoding </atom:content></atom:entry></document>
【问题讨论】:
-
atom:id也在 Atom 命名空间中。你需要在你的课堂上指定这个吗?您是否收到特定错误? -
没有抛出异常,但是具有不同命名空间的属性设置为null,改变它工作的命名空间......据我所知,DataContractSerializer 不支持多个命名空间......我已经决定使用 XmlSerializer 性能最差但更灵活且支持更广泛的语法...
标签: c# xml datacontractserializer datacontract atom-feed