2009-07-25 20 views
1

OK Ich habe mit Silverlight gespielt und bin auf etwas Interessantes gestoßen, von dem ich hoffe, dass es jemand erklären kann. Die MSDN-Dokumentation gibt eindeutig an, dass es eine WebRequest.GetResponse() -Methode hat. Ich habe einen Code erstellt, um die neuesten Nachrichten von Twitter zu erhalten. Der Code funktioniert gut in einer Konsolen-App, aber ich erhalte einen Fehler, wenn es in einer Silverlight-App ist. Der Code ist genau derselbe, aber in meiner xaml.cs-Datei scheint die Methode aus dem Framework verschwunden zu sein. Wer weiß warum? Hier sind zwei Screenshots, die zeigen, was ich meine.WebRequest.GetResponse() ..... Was ist passiert?

Console App: http://twitpic.com/bl6cf

Silverlight: http://twitpic.com/bl6ev

+0

Wird GetResponse als Teil von Intellisense in der Silverlight-Version angezeigt? – shahkalpesh

Antwort

3

Silverlight Dokumentation nicht GetResponse Liste() -Methode, da in Silverlight können Sie rufen nur BeginGetResponse Methode.

Dies liegt daran, dass Sie den UI-Thread blockieren und den Browser blockieren können. BeginGetResponse ist eine asynchrone Methode.

+0

Ich dachte, es könnte daran liegen, dass der Client eine Anfrage vom Browser macht, aber die Sperrung nicht kennt. +1 – shahkalpesh

+0

Auf der anderen Seite, wie blockiert der Compiler das Aufrufen der Methode? Ist es eine separate Baugruppe (reduzierte Version) für Silverlight? – shahkalpesh

+0

Ja, tatsächlich ist die gesamte Silverlight-Bibliothek mit einem Attribut "SILVERLIGHT" kompiliert, das Sie in den Eigenschaften Ihres Projekts überprüfen können. Silverlight-Bibliotheken sind eine verkleinerte Version, aber ich denke, dass sie für modifizierte silverlight CLR komplett neu geschrieben werden. Und ja Compiler und Ihr Visual Studio liest "SILVERLIGHT" -Attribut und lädt die Baugruppe entsprechend. –