A l'occasion de la réalisation d'une maquette, je découvre combien l'utilisation de Linq permet de nous faciliter la tache : voici une dizaine de lignes, comment publier les 15 derniers billets de trois blogs au travers d'un nouveau flux RSS.
1 2 3 4 5 6 7 8 9 10 11
string[] urls = {"http://blog.sfartz.com/feed/rss2", "http://blogs.msdn.com/ssfartz/rss.xml", "http://blogs.msdn.com/cloudcomputing/rss.xml"};
List<SyndicationFeed> feeds = new List<SyndicationFeed>(); foreach (string url in urls) { using (XmlReader feedReader = XmlReader.Create(url)) { feeds.Add(SyndicationFeed.Load(feedReader)); } }
DateTime minDate = DateTime.Now.AddDays(-30);
var mashedItems = from feed in feeds from item in feed.Items where item.PublishDate > minDate orderby item.PublishDate descending select item;
// Et maintenant restituons les 15 derniers billets sous forme d'un flux RSS
SyndicationFeed mashedFeed = new SyndicationFeed(mashedItems.Take(15));
using (XmlWriter writer = XmlWriter.Create(context.Response.OutputStream)) { context.Response.ContentType = "text/xml"; mashedFeed.SaveAsRss20(writer); }
Ce code est exécutable dans des applications Serveur, Client Windows et Client Web :
Pour découvrir l'ensemble du code (jusqu'à l'affichage du flux RSS dans un espace Web SilverLight personnalisable) et pour parcourir d'autres exemples guidés, consulter les labs SilverLight.
PingBack from http://microsoftnews.askpcdoc.com/?p=3051