Microsoft.Bcl.Async не работает

Я пытаюсь использовать Async с Portable Class Library. Я использую профиль 104, который включает в себя:

  • .NET 4.5
  • Сильверлайт 4
  • WP 7.5
  • WinRT

Установка работает, и я могу использовать System.Threading.Tasks, но я не могу скомпилировать, потому что у меня есть эта ошибка:

Не могу дождаться System.Threading.Task<System.Net.HttpWebResponse>

В строке с await в этом примере:

public async Task<string> GetAsync(string urlToCall)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlToCall);
    request.Method = HttpMethod.Get;
    HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();
    using (var sr = new StreamReader(response.GetResponseStream()))
    {
        return sr.ReadToEnd();
    }
}

Почему?

Обновить

Мой профиль 104 обновляется с помощью monodroid и monotouch. Я использую NuGet для установки Microsoft.Bcl.Async v 1.0.16. Если я добавлю AsyncBridge.Portable v 0.2.0, у меня нет предупреждения о Visual Studio, но он не компилируется. Существуют конфликты между этими двумя библиотеками в System.Attributes.

Как сделать так, чтобы эти библиотеки работали вместе?

Спасибо


person sbou    schedule 07.03.2013    source источник
comment
Ваш код отлично компилируется для меня с этой настройкой (после того, как я заменил HttpMethod.Get на "GET").   -  person svick    schedule 07.03.2013
comment
На какую .NET Framework вы ориентируетесь при компиляции?   -  person G. Stoynev    schedule 07.03.2013
comment
Я использую эту библиотеку с проектом WPF. Я нашел образец с тем же профилем, и он скомпилирован в моей визуальной студии, но использует AsyncBridge.Portable и Microsoft.Bcl.Async. Вы использовали его?   -  person sbou    schedule 08.03.2013
comment
Есть ли другие ошибки или предупреждения в выводе проекта при компиляции?   -  person Daniel Plaisted    schedule 10.03.2013


Ответы (1)


Я использовал Bcl.async и AsyncBridge.Portable от Nuget, и у меня были ошибки.

Если я использую Bclasync из Nuget с AsyncBridge.Portable, созданным Daniel Plaisted, все в порядке.

Мне интересно узнать, что делает Даниэль, чтобы эта библиотека работала?

Спасибо,

person sbou    schedule 11.03.2013
comment
По сути, я использовал AsyncBridge для создания реализации MonoAndroid той же области поверхности, что и в Microsoft.Bcl.Async. Это включало перенаправление некоторых типов в эквиваленты Mono и реализацию других на основе кода AsyncBridge. У вас есть исходный код моей версии, верно? - person Daniel Plaisted; 12.03.2013
comment
Да, у меня есть Async.Facade, но я не понимаю, как сделать PCL dll с таким проектом. Я хотел бы использовать переадресацию типов, чтобы иметь System.Data.IDbConnection в библиотеке PCL. Во время выполнения я хочу внедрить System.Data.SQLite или Mono.Data.SQLite. Ты думаешь это возможно ? - person sbou; 12.03.2013
comment
Я бы предложил задать отдельный вопрос о System.Data.IDbConnection, который, похоже, не имеет прямого отношения к вашим проблемам с Bcl.Async. - person Daniel Plaisted; 14.03.2013