天天看點

基于WP7的RSS閱讀器

時近年關,手頭的事情漸漸進入尾聲,最近一段時間一直忙碌于windows8應用程式的開發,突然想到作為隻能用戶端的一員手機也充當着重要的角色,為什麼不能出一個基于WP7系統的應用呢,于是乎建立了這個基于WP7的RSS閱讀器,因為不善于頁面的美化,是以Copy了官方windows8事例的界面設計。整個程式完成後頁面如下圖所示.

基于WP7的RSS閱讀器
基于WP7的RSS閱讀器
基于WP7的RSS閱讀器

     在制作的過程中,遇到了一些問題,至今仍無法解決,這裡将有問題的代碼貼出來,希望得到專業人士的幫助,能幫我解決這個問題。

基于WP7的RSS閱讀器
private void GetFeedAsync(object uri)
        {
            #region WebClient
            var webClient = new WebClient();
            webClient.OpenReadCompleted += (sender, args) =>
                {
                    if (args.Error == null && !args.Cancelled)
                    {
                        var stream = args.Result;
                        if (stream.CanRead)
                        {
                            using (var sr = new StreamReader(stream, UnicodeEncoding.UTF8))
                            {
                                var builder = new StringBuilder();
                                string tempStr;
                                while ((tempStr = sr.ReadLine()) != null)
                                {
                                    tempStr = tempStr.Replace((char)0x1F, ' ');
                                    builder.Append(tempStr);
                                }

                                var ms = new MemoryStream(Encoding.UTF8.GetBytes(builder.ToString()));
                                using (var xmlReader = XmlReader.Create(ms))
                                {
                                    try
                                    {
                                        // 該行出現異常,異常資訊為:Data at the root level is invalid
                                        var feeds = SyndicationFeed.Load(xmlReader);
                                        var feedData = new FeedData();
                                        feedData.Id = new Uri(feeds.Id);
                                        feedData.Description = feeds.Description.Text;
                                        feedData.PubDate = feeds.LastUpdatedTime.DateTime;
                                        feedData.Title = feeds.Title.Text;

                                        foreach (var feedItem in feeds.Items)
                                        {
                                            var item = new FeedItem();
                                            item.Author = feedItem.Authors[0].Name;
                                            item.Content = feedItem.Summary.Text;
                                            item.Link = feedItem.Links[0].Uri;
                                            item.PubDate = feedItem.PublishDate.DateTime;
                                            item.Title = feedItem.Title.Text;
                                            feedData.Items.Add(item);
                                        }
                                        _feeds.Add(feedData);
                                    }
                                    catch (Exception ex)
                                    {

                                    }
                                }
                            }
                        }
                    }
                };
            webClient.OpenReadAsync((Uri)uri);
            #endregion
        }      
基于WP7的RSS閱讀器

  在代碼運作的過程中,總是會出現注釋中出現的問題,故釋出出來希望能得到大家的指導。謝謝

<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

繼續閱讀