Как я могу сериализовать коллекцию объектов SyndicationItem? - PullRequest
1 голос
/ 01 ноября 2011

У меня есть коллекция объектов SyndicationItem, которые мне нужно сериализовать, но я не уверен, как мне это сделать. Предложения?

IEnumberable<SyndicationItem> blogPosts = GetBlogPosts();

...

private IEnumerable<SyndicationItem> GetBlogPosts()
{
  var query = Enumerable.Empty<SyndicationItem>();
  foreach (string feed in Feeds)
  {
    try
    {
      using (XmlReader reader = XmlReader.Create(feed))
      {
        query = query.Union((from item in SyndicationFeed.Load(reader).Items
            orderby item.PublishDate descending
                select item).Take(NumberOfItemsToDisplay));
      }
    }
    catch (Exception ex)
    {
      Console.WriteLine("Invalid Feed: {0} ({1})", feed, ex.Message);
    }
  }
  query = query.OrderByDescending(i => i.PublishDate).Take(NumberOfItemsToDisplay);
  return query;
}

1 Ответ

0 голосов
/ 01 ноября 2011

Если вы хотите сериализовать SyndicationItem, у него есть несколько методов, которые вы можете использовать SaveAsRss20 , SaveAsAtom10 .Чтобы сериализовать коллекцию, перебирайте один за другим и записывайте ее в некоторый поток

SyndicationItem item = new SyndicationItem("Item Title", "Item Content", new Uri("http://Item/Alternate/Link"), "itemID", DateTimeOffset.Now);
XmlWriter writer = XmlWriter.Create("outfile.xml");
item.SaveAsRss20(writer);
writer.Close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...