基于WP7的RSS阅读器

       时近年关,手头的事情渐渐进入尾声,最近一段时间一直忙碌于windows8应用程序的开发,突然想到作为只能客户端的一员手机也充当着重要的角色,为什么不能出一个基于WP7系统的应用呢,于是乎创建了这个基于WP7的RSS阅读器,因为不善于页面的美化,所以Copy了官方windows8事例的界面设计。整个程序完成后页面如下图所示.

                   

     在制作的过程中,遇到了一些问题,至今仍无法解决,这里将有问题的代码贴出来,希望得到专业人士的帮助,能帮我解决这个问题。

    

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
        }

  在代码运行的过程中,总是会出现注释中出现的问题,故发布出来希望能得到大家的指导。谢谢

      源程序下载地址为:https://files.cnblogs.com/Leoyi/RssReader.7z

 

posted @ 2013-01-31 17:21  小殷  阅读(420)  评论(3)    收藏  举报