Ошибка Messagebox.show в htttwebresponse методе

У меня есть следующий код ответа. Я получил ошибку как исключение типа 'Система. UnauthorizedAccessException' произошел в Системе. Windows.ni.dll, но не был обработан в пользователе codeerror, когда требование Messagebox.sohw() метод, чтобы показать код: 200. Мой Json похож {"meta": {"код":200}}

          private void ReadWebRequestCallback(IAsyncResult ar)
          {
           HttpWebRequest myReq = (HttpWebRequest)ar.AsyncState;
            HttpWebResponse myResponse = (HttpWebResponse)myReq.EndGetResponse(ar);
uritext.Text = myResponse.ResponseUri.ToString();
            using (StreamReader httpwebStreamReader = new StreamReader(myResponse.GetResponseStream()))
            {
                string results = httpwebStreamReader.ReadToEnd();    
            }
            myResponse.Close();
           var root = JsonConvert.DeserializeObject(jsondata);
           String codenum = root.meta.code.ToString();
           Messagebox.sohw(codenum);
           }
   public class Meta
    {
        public int code { get; set; }
    }

    public class RootObject
    {
        public Meta meta { get; set; }
    }
0
nl ja de

1 ответы

Проблема состоит в том, что отзыв от HttpWebRequest происходит от нити non-UI.

Вот то, что можно сделать, чтобы выполнить MessageBox. Покажите на нити UI:

Dispatcher.BeginInvoke(() => MessageBox.Show(codenum));
2
добавлено
Просто замените линию, где вы называете MessageBox. Покажите в методе ReadWebRequestCallback коду, написанному в моем ответе.
добавлено автор Olivier Payen, источник
Просто скопировать/вставить строка кода моего anwser! Это использует Анонимную функцию (см. msdn.microsoft.com/en-us/library/bb882516.aspx)
добавлено автор Olivier Payen, источник
как я могу использовать httpWebrequest, чтобы избежать этой проблемы? защищенный отвергают недействительный OnNavigatedTo (Система. Windows. Навигация. NavigationEventArgs e) {Последовательность accesstoken = NavigationContext. QueryString["access_token"]; HttpWebRequest myReq = (HttpWebRequest) WebRequest. Создайте (access_uri + accesstoken); myReq. BeginGetResponse (новый AsyncCallback (ReadWebRequestCallback), myReq);}
добавлено автор Meet R. Pachchigar, источник
как я могу передать метод как тест() в Диспетчере. BeginInvoke ();
добавлено автор Meet R. Pachchigar, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Про Windows
Про Windows
941 участник(ов)

Microsoft Windows и всё, что с этим связано. Список интересных групп и каналов: https://github.com/goq/telegram-list

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot