.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
リストに追加します。
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);
。
型 'System.ServiceModel.Syndication.SyndicationElementExtension' をシリアル化できません。これを DataContractAttribute 属性でマークし、シリアル化するすべてのメンバーを DataMemberAttribute 属性でマークすることを検討してください。型がコレクションの場合は、CollectionDataContractAttribute でマークすることを検討してください。
属性でマークiTunesExt
するにはどうすればよいですか? DataContractAttribute
それとも私はそれを誤解していますか?