2012-07-24 4 views
1

실버 라이트에서 GetRequestStream 또는 GetResponse을 사용할 수없는 이유는 무엇입니까? 내 웹 서비스에 연결하려고하는데 여기서 오류가 발생합니다.GetResponse 및 GetRequestStream silverlight

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(); 

해결 방법이 있습니까?

+0

Silverlight 버전? 5? – AnthonyWJones

+0

안녕하세요, 예, 5.. –

답변

0

Silverlight는 비동기 네트워크 액세스 만 지원합니다. Silverlight에는 동기 GetRequestStreamGetResponse 메서드가 없습니다. 비동기 메서드 BeginGetRequestStream/EndGetRequestStreamBeginGetResponse/EndGetResponse을 사용해야합니다.

더 중요한 것은 일을 비동기 적으로 수행하는 방법을 빠르게 이해해야합니다. 예를 들어 위의 코드를 호출하면 완료되고 특정 변경 사항이 적용될 것으로 예상됩니다. 사실이 아닌 비동기적인 세계에서 코드는 빠르게 반환 될 것이고 나중에 어떤 일이 일어날 것입니다.