1

私は現在、C#でLINQtoXMLを使用してTwitterフィードを表示する方法に関するチュートリアルに従っています。ただし、MicrosoftがWebClientHTTPClientに置き換えたため、これをWindows8アプリケーションに統合する方法がわかりません。
チュートリアル: http: //www.codeproject.com/Articles/117614/How-to-query-twitter-public-status-using-LINQ-to-X

問題は、私がDownloadStringCompletedに「中​​途半端」に慣れていることです。これは、 HTTPClientAPIにはないと思います。そのため、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を返さなくなった場合)、メソッドのシグネチャを変更して、タスクだけを返すことができます。

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