1

何らかの理由で使用できGetRequestStreamないかGetResponse、Silverlight で下線が引かれます:S 何を使用すればよいかわかりませんか? Web サービスに接続しようとしていますが、ここでエラーが発生します。

string uri = "http://localhost:8002/Service/Customer";
StringBuilder sb = new StringBuilder();
sb.Append("<Customer>");
sb.AppendLine("<FirstName>" + this.textBox1.Text + "</FirstName>");
sb.AppendLine("<LastName>" + this.textBox2.Text + "</LastName>");
sb.AppendLine("</Customer>");
string NewCustomer = sb.ToString();
byte[] arr = Encoding.UTF8.GetBytes(NewCustomer );
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
req.Method = "POST";
req.ContentType = "application/xml";
req.ContentLength = arr.Length;
Stream reqStrm = req.GetRequestStream();// error here GetRequestStream
reqStrm.Write(arr, 0, arr.Length);
reqStrm.Close();
HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); //error here GetRequestStream
MessageBox.Show("Staff Creation: Status " + resp.StatusDescription);
reqStrm.Close();
resp.Close();

誰にも回避策がありますか?

4

1 に答える 1

0

Silverlight は、非同期ネットワーク アクセスのみをサポートします。Silverlight には同期メソッドGetRequestStreamとメソッドはありません。非同期メソッド/および/GetResponseを使用する必要があります。BeginGetRequestStreamEndGetRequestStreamBeginGetResponseEndGetResponse

さらに重要なことは、一般的に非同期で物事を行う方法について理解する必要があるということです。たとえば、何かが上記のコードを呼び出し、それが完了した後に特定の変更が発生することを期待します。そうではない非同期の世界では、コードはすぐに戻り、後で何かが起こります。

于 2012-07-24T07:40:30.753 に答える