У меня есть переносимая библиотека классов, для которой требуется указать хотя бы .net 4.5 и Silverlight 5. У меня возникла проблема с попыткой записать модульные тесты MSTest в VS 2012, потому что моя библиотека не используйте новую асинхронную/ожидающую парадигму. Есть ли способ проверить этот метод?Асинхронное тестирование модулей с помощью переносимых библиотек классов
public static void Get(string uri, string acceptHeader, Action<string> callback)
{
var request = (HttpWebRequest)WebRequest.Create(uri);
request.Accept = acceptHeader;
request.BeginGetResponse(o =>
{
var r = o.AsyncState as HttpWebRequest;
try
{
var response = r.EndGetResponse(o);
using (var sr = new StreamReader(response.GetResponseStream()))
{
callback(sr.ReadToEnd());
}
}
catch (Exception ex)
{
throw new WebException(string.Format("Unable to access {0}", uri), ex);
}
}, request);
}
Я действительно открыт для использования async/await, но методы Async, кажется, отсутствуют в 'HttpWebRequest' для PCL. Как бы вы меняли метод 'Get'? – user140550
Task.Factory.FromAsync предназначен для преобразования APM в async/wait. – Aron
И в этом преобразовании «правильным» способом сделать это было бы, чтобы метод возвращал строку, которую я отправляю в право обратного вызова? – user140550