を消費:どのように私は以下のような非同期サービスを利用することができていたWebサービスの非同期
public void PostMethodResponse()
{
try
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(_url);
myRequest.Method = "POST";
myRequest.Headers["SOAPAction"] = _action;
myRequest.ContentType = "text/xml; charset=utf-8";
myRequest.Accept = "text/xml";
myRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), myRequest);
}
catch (Exception ex)
{
throw ex;
}
}
private void GetRequestStreamCallback(IAsyncResult asynchronousResult)
{
try
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
System.IO.Stream postStream = request.EndGetRequestStream(asynchronousResult);
byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(_postData);
postStream.Write(byteArray, 0, byteArray.Length);
postStream.Close();
// Start the asynchronous operation to get the response
request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
}
catch (Exception ex)
{
throw ex;
}
}
private void GetResponseCallback(IAsyncResult asynchronousResult)
{
try
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
Stream streamResponse = response.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
string responseString = streamRead.ReadToEnd();
// Close the stream object
streamResponse.Close();
streamRead.Close();
// Release the HttpWebResponse
response.Close();
_response = responseString;
}
catch (Exception ex)
{
_response = ex.Message;
}
}
私はViewModelにクラスから(モデルクラスである)PostMethodResponse()関数を呼び出しています。私はGetResponseCallback関数で応答を得ることができますが、どのようにViewModelに応答を返し、次にView(フロントエンド.xaml)に返すことができます。レスポンスを取得するには、イベントGetResponseCallback関数を起動し、ViewModelクラスをキャッチして、同じイベントViewModelを起動し、ビューをキャッチします。ただし、これは正しい方法ではありません。
MVVMアーキテクチャのWebサービスの呼び出しを理解してください。
ありがとうございます。
このMVVMとは何の関係もありません。それはイベントの基本的な理解とC# –
での非同期プログラミングについてです。誰かが "ex"をタイプするたびに、子猫が殺されるたびに。 –
返信ありがとうございます。私はMVVMのアーキテクチャを理解するのがちょっと混乱しています.OK、その後、私の結果を.xaml.csページに返さなければならないこのクラスのPostMethodResponse()関数を呼び出すクラスに私の応答を返す方法を教えてください。 – Avinash