Mega Code Archive

 
Categories / Silverlight / Communication
 

Accessing RSS Services

<UserControl x:Class='SilverlightApplication3.MainPage'     xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'      xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'     xmlns:d='http://schemas.microsoft.com/expression/blend/2008'      xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006'      mc:Ignorable='d'      d:DesignWidth='640'      d:DesignHeight='480'>      <Grid x:Name="LayoutRoot" Background="LightBlue">          <TextBlock Text="RSS Feed Items"/>          <TextBlock Text="Item Summary"/>          <ScrollViewer Background="White">                 <ListBox x:Name="titleList"/>          </ScrollViewer>          <ScrollViewer Background="White">             <TextBlock x:Name="feedSummary"/>          </ScrollViewer>          <Button x:Name="getBtn" Content="Get Feed"/>         <TextBlock x:Name="dateText" Text="Published: "/>     </Grid> </UserControl> //File:Page.xaml.cs using System; using System.Collections.Generic; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.ServiceModel.Syndication; using System.Net; using System.Xml; namespace SilverlightApplication3 {     public partial class MainPage : UserControl     {         SyndicationFeed rssFeed;         public MainPage()         {             InitializeComponent();             getBtn.Click += new RoutedEventHandler(doGetFeed);             titleList.SelectionChanged += new SelectionChangedEventHandler(doShowSummary);          }         void doShowSummary (object sender, SelectionChangedEventArgs e)          {             SyndicationItem item = rssFeed.Items.ElementAt(titleList.SelectedIndex);              dateText.Text = "Published: "+ item.PublishDate.Date.ToString();             feedSummary.Text = item.Summary.Text.ToString();          }         void doGetFeed(object sender, RoutedEventArgs e)         {             string feedURL = "http://localhost/MainFeed.aspx";             HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(feedURL));             request.BeginGetResponse(new AsyncCallback(responseHandler), request);          }         void responseHandler(IAsyncResult asyncResult){             HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;             HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult);             XmlReader reader = XmlReader.Create(response.GetResponseStream());             rssFeed = SyndicationFeed.Load(reader);             foreach (SyndicationItem item in rssFeed.Items)             {                 titleList.Items.Add(item.Title.Text);             }          }     } }