У меня есть проблема, для которой я не могу найти никакого решения, и мне трудно поверить, что я единственный, кто получает эту ошибку.
У меня есть этот фрагмент кода С# в переносимой библиотеке классов
static public void GetAnimeListFromWeb(ObservableCollection<AnimeViewModel> collection, string Url, string encodedLogin = "")
{
WebRequest request = WebRequest.Create(Url);
request.Headers["Authorization"] = encodedLogin;
IAsyncResult asyncResult = request.BeginGetResponse(new AsyncCallback( s => {
WebResponse response = (s.AsyncState as WebRequest).EndGetResponse(s);
XDocument doc = XDocument.Load(response.GetResponseStream());
IEnumerable<AnimeViewModel> result = ParseAnimeXML(doc);
collection = (ObservableCollection<AnimeViewModel>)result;
}), request);
}
Когда я его компилирую, он строится, и код также работает в небольшой консольной программе, которую я написал для его тестирования. Однако при тестировании в приложении для Windows Phone 8 происходит сбой на
WebResponse response = (s.AsyncState as WebRequest).EndGetResponse(s);
Он выдает исключение ArgumentException. Когда я проверил переменную 's', он сказал, что AsyncWaitHandle выдал исключение NotSupportedException.
Тогда мой вопрос: как я могу сделать правильный веб-запрос, который будет работать на всех платформах?
РЕДАКТИРОВАТЬ: Возможно, полезно отметить, что я нацелен на .NET 4.5, SL4 и выше, WP7 и выше и .NET для приложений Магазина Windows.