![](/img/trans.png)
[英]SyndicationFeed RSS Reader pubDate: error was encountered when parsing a datetime value
[英].Net SyndicationFeed serialization error when adding extensions to the RSS feed
我創建一個.NET Framework SyndicationFeed:
SyndicationFeed feed = SyndicationFeed.Load(xmlReader);
然后創建一個新項目:
var newItem = new SyndicationItem();
newItem.Id = sourceFeedItem.ItemID;
newItem.Title = new TextSyndicationContent(sourceFeedItem.ItemTitle);
然后添加一些iTunes項目擴展名:
var iTunesExt = newItem.ElementExtensions;
iTunesExt.Add(new XElement("MyElement", "Whatever");
newItem.ElementExtensions.Add(iTunesExt);
然后,將該items
添加到items
列表中:
List<SyndicationItem> items = new List<SyndicationItem>();
items.Add(newItem);
並設置提要的Items
屬性。
feed.Items = items;
最后,我將SyndicationFeed
feed
寫入XmlWriter
。
feed.SaveAsRss20(xmlWriter);
如果不添加擴展名,換句話說,如果newItem.ElementExtensions.Add(iTunesExt);
行不執行。 但是,如果該行執行,則在執行feed.SaveAsRss20(xmlWriter);
時出現以下錯誤feed.SaveAsRss20(xmlWriter);
。
類型'System.ServiceModel.Syndication.SyndicationElementExtension'無法序列化。 考慮使用DataContractAttribute屬性標記它,並使用DataMemberAttribute屬性標記要序列化的所有成員。 如果類型是集合,請考慮使用CollectionDataContractAttribute對其進行標記。
如何用DataContractAttribute
屬性標記iTunesExt
? 還是我誤會了?
iTunesExt.Add(new XElement("MyElement", "Whatever");
嘗試將其修改為:
iTunesExt.Add(new XElement("MyElement", "Whatever"),
new DataContractSerializer(typeof(XElement)));
這使您可以指定使用DataContractSerializer
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.