1

我目前正在关注如何在 C# 中使用 LINQ to XML 显示 Twitter 提要的教程。但是,鉴于 Microsoft 已将WebClient替换为HTTPClient,我不确定如何继续将其集成到我的 Windows 8 应用程序中。
教程: http: //www.codeproject.com/Articles/117614/How-to-query-twitter-public-status-using-LINQ-to-X

问题是我已经“半途而废”了DownloadStringCompleted,我相信这不在HTTPClient api 中。所以在 async/await 功能上搜索了一段时间后,我将我的一些知识与我找到的一些教程和片段混合在一起,但我最终得到的结果是行不通的:

    public async Task<XElement> GetXmlAsync()
    {
        var client = new HttpClient();
        var response = await client.GetAsync("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=VladimirPutin");
        var text = response.Content.ReadAsStringAsync();
        return XElement.Parse(text.Result);

        XElement xmlTweets = XElement.Parse(text.Result);
        listboxTweetsSecond.ItemsSource = from tweet in xmlTweets.Descendants("status")
                                          select new UserTweet
                                          {
                                              UserImageSrc = tweet.Element("user").Element("profile_image_url").Value,
                                              UserMessage = tweet.Element("text").Value,
                                              UserName = tweet.Element("user").Element("screen_name").Value
                                          };

    }

(是的,Twitter 用户名只是一个占位符)
我不需要完整的代码作为答案,但如果有人能指出我应该从这里去哪里以及我应该做什么,我会很高兴,因为这(当然)不起作用(例如,当我运行它/调试模式时它不显示任何内容)。

4

1 回答 1

1

注释掉该行

return XElement.Parse(text.Result);

它应该可以工作。

完成之后(即您不再返回 XElement),您可能可以更改方法签名 top 仅返回一个任务。

public async Task GetXmlAsync()
{
    // method body
}
于 2013-01-03T12:41:13.060 回答