我想投使用的Atom feed有Datacontract類的XML和我沒有反序列化Atom提要....如何使用DataContracts
我的代碼是以下之一:
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 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命名空間中。你需要在你的課堂上指定這個嗎?你有特定的錯誤嗎? – Joe
沒有拋出任何異常,但具有不同名稱空間的屬性設置爲null,更改它的工作空間......據我所知,DataContractSerializer不支持多個名稱空間...我決定使用XmlSerializer最差的性能,但更多靈活性和更廣泛的語法支持... – Stelio