ОК, поэтому я понятия не имею, почему это не работает. Я нашел 4 различных урока / примера вызова асинхронного вызова веб-службы JSON в Silverlight, и все они используют тот же формат / логику, что и я. В строке "using (streamCommunities = request.EndGetRequestStream (asyncResult)))" он выдает ошибку, которую я прикрепил внизу, ArgumentException, говорящую, что ему не нравится asyncResult. Почему, если в каждом другом примере, который я нашел, используется та же логика?
private void GetSource(object state)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(MyValidUri));
request.Method = "POST";
request.ContentType = "application/json";
request.BeginGetResponse(new AsyncCallback(ReadCommunityCallBack), request);
}
private void ReadCommunityCallBack(IAsyncResult asyncResult)
{
HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;
using (Stream outStream = request.EndGetRequestStream(asyncResult))
{
// DO STUFF HERE
}
}
И ошибка здесь:
System.ArgumentException was unhandled by user code
Message=Value does not fall within the expected range.
StackTrace:
at System.Net.Browser.ClientHttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult)
at cenTabbedFeed.MainPage.ReadCommunityCallBack(IAsyncResult asyncResult)
at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass1a.<InvokeGetResponseCallback>b__18(Object state2)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Как я уже говорил, я искал примеры и пытался найти ответ на MSDN, и я застрял и разочарован.
-Спасибо заранее
RJ