【问题标题】:How to fix the lambda expression delegate error?如何修复 lambda 表达式委托错误?
【发布时间】:2013-03-11 05:20:30
【问题描述】:

我正在使用这种方法获取数据

 private void getNews(int cat_id, int page)
    {
        this.progress.Visibility = Visibility.Visible;
        var m = new SharpGIS.GZipWebClient();
        Microsoft.Phone.Reactive.Observable.FromEvent<DownloadStringCompletedEventArgs>(m, "DownloadStringCompleted").Subscribe(l =>
        {
            try
            {
                //List<NewsKeys> deserialized = JsonConvert.DeserializeObject<List<NewsKeys>>(r.EventArgs.Result);
                ObservableCollection<NewsKeys> deserialized = JsonConvert.DeserializeObject<List<NewsKeys>>(l.EventArgs.Result);

                foreach (NewsKeys item in deserialized)
                {
                    items.Add(new NewsKeys { nId = item.nId, title = item.title, shortDesc = item.shortDesc, fullDesc = item.fullDesc, tags = item.tags, smallPic = item.smallPic, bigPic = item.bigPic, video = item.video, audio = item.audio, youtube = item.youtube, doc = item.doc, date_create = item.date_create, date_modify = item.date_modify, date_publish = item.date_publish, catId = item.catId, viewOrder = item.viewOrder, viewCount = item.viewCount, viewStatus = item.viewStatus, viewHome = item.viewHome, uId = item.uId, uFname = item.uFname });
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Sorry, Some unexpected error.");
            }
        });
        m.DownloadStringAsync(new Uri(Resource.NEWS_API+cat_id+"&page="+page));
    }

我得到的错误是

错误 1 ​​无法将 lambda 表达式转换为类型“System.IObserver>”,因为它不是委托类型 C:\Users\Adodis\Documents\Visual Studio 2010\Projects\TV\NewsListPage.xaml.cs 51 133

我已经尝试了所有的修复方法,但无法解决这个问题。我在不同的类中以不同的方法使用相同的块,它工作正常,但是,这个类中的这种方法杀死了我。如果您对此有任何想法,请帮助我。

提前致谢。

【问题讨论】:

    标签: json windows-phone-7 http delegates


    【解决方案1】:

    试试这个(我已将SelectSubscribe 操作分开):

    var m = new SharpGIS.GZipWebClient();
    
    Observable.FromEvent<DownloadStringCompletedEventArgs>(m, "DownloadStringCompleted")
              .Select(l => l.EventArgs.Result)
              .Subscribe(res =>
                  {
                      try
                      {
                          var deserialized = JsonConvert.DeserializeObject<List<NewsKeys>>(res);
    
                          foreach (NewsKeys item in deserialized)
                          {
                              items.Add(
                                  new NewsKeys
                                      {
                                          nId = item.nId,
                                          title = item.title,
                                          shortDesc = item.shortDesc,
                                          fullDesc = item.fullDesc,
                                          tags = item.tags,
                                          smallPic = item.smallPic,
                                          bigPic = item.bigPic,
                                          video = item.video,
                                          audio = item.audio,
                                          youtube = item.youtube,
                                          doc = item.doc,
                                          date_create = item.date_create,
                                          date_modify = item.date_modify,
                                          date_publish = item.date_publish,
                                          catId = item.catId,
                                          viewOrder = item.viewOrder,
                                          viewCount = item.viewCount,
                                          viewStatus = item.viewStatus,
                                          viewHome = item.viewHome,
                                          uId = item.uId,
                                          uFname = item.uFname
                                      });
                          }
                      }
                      catch (Exception)
                      {
                          MessageBox.Show("Sorry, Some unexpected error.");
                      }
                  });
    
    m.DownloadStringAsync(new Uri("Resource.NEWS_API" + cat_id + "&page=" + page));
    

    【讨论】:

      猜你喜欢
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多