2017-05-16 9 views
0

私のアプリケーションのAndroidは、このエラーを表示します。「オブジェクト参照はオブジェクトのインスタンスを設定していません。 "e.Result"には何もなかったかのようです。しかし、私のWebサービスはうまく動作しますWebサービスasmx Xamarin.Formは機能しません

public MainPage() 
     { 
      InitializeComponent(); 


      Please.GardaSoapClient Ws = new Please.GardaSoapClient(new BasicHttpBinding(), 
         new EndpointAddress("http://webgarda20170508110006.azurewebsites.net/Garda.asmx")); 
      Ws.HelloCompleted += Ws_HelloCompleted; 
      Ws.HelloAsync(); 

      } 

     private void Ws_HelloCompleted(object sender, Please.HelloCompletedEventArgs e) 
     { 
      Device.BeginInvokeOnMainThread(async() => { 
        string error = null; 
        if (e.Error != null) 
         error = e.Error.Message; 
        else if (e.Cancelled) 
         error = "Cancelled"; 

        if (!string.IsNullOrEmpty(error)) 
        { 
         await DisplayAlert("Error", error, "OK", "Cancel"); **//error => "Object reference not set an instance of an object"** 
        } 
        else 
      `enter code here`  { 

       test.Text = e.Result; 
       } 
      }); 
     } 
    } 

私を助けることができますか? :) ありがとう

+0

私はこれについて調査していませんが、いつでも手動でhttpリクエストを行うことができます。これを見てみましょう:http://stackoverflow.com/a/4015346/1845593 – user1845593

+1

もう1つのことは、Fiddlerを介してリクエストを送信し、サーバーから来ているエラーをチェックするか、サーバーにヒットしているかどうかを確認することです – user1845593

答えて

0

ターゲットメソッドはイベントハンドラであるため、asyncイベントハンドラを利用して、イベントの引数をeのスコープに保つことができます。

private async void Ws_HelloCompleted(object sender, Please.HelloCompletedEventArgs e) { 
    string error = null; 
    if (e.Error != null) 
     error = e.Error.Message; 
    else if (e.Cancelled) 
     error = "Cancelled"; 

    if (!string.IsNullOrEmpty(error)) { 
     await DisplayAlert("Error", error, "OK", "Cancel"); 
    } else { 
     test.Text = e.Result; 
    } 
} 
関連する問題