Отладчик не распознает переменную для возвращаемого значения ожидаемого метода

У меня есть этот очень простой код в переносимой библиотеке классов, предназначенный для приложений .NET 4.5 и Магазина Windows:

HttpResponseMessage response = await _httpClient.PostAsync(uri, content);
response.EnsureSuccessStatusCode();

Когда я помещаю точку останова во вторую строку и запускаю свое приложение, точка останова срабатывает правильно, но я не могу исследовать ответ в отладчике, потому что он сообщает:

Имя «ответ» не существует в текущем контексте

Я не уверен, насколько это связано, но мне также пришлось отключить параметр отладчика Just My Code в настройках отладчика, чтобы иметь возможность отлаживать мою переносимую библиотеку классов, размещенную в том же решении, что и выполняющееся приложение.

Это какое-то ограничение методов асинхронного ожидания, переносимых библиотек классов, целевых приложений (в частности, приложения Магазина Windows) или комбинации этих инструментов? Или это ошибка отладчика? Любой обходной путь будет более чем полезен.


person Ladislav Mrnka    schedule 29.09.2012    source источник
comment
Используйте connect.microsoft.com, чтобы сообщить о подобных проблемах. Им понадобится минимальный репродукционный проект, чтобы взглянуть на него.   -  person Hans Passant    schedule 30.09.2012
comment
Выполните стандартный сброс: очистите, перестройте, убедитесь, что отладка включена, и, если ничего не работает, сбросьте VS. Он должен работать.   -  person Kasper Holdum    schedule 30.09.2012
comment
@KasperHoldum: К сожалению, это не решило проблему. Это только помогло снова включить Just My Code, но проблема с отладчиком превалирует. Я также пытался воспроизвести это на простом примере, и это, конечно, работает. Отправка всего проекта в MS для воспроизведения проблемы невозможна. Это также причина, по которой я не планирую заполнять отчет о подключении.   -  person Ladislav Mrnka    schedule 30.09.2012


Ответы (1)


Я не уверен, что это все еще происходит с более новыми обновлениями Visual Studio (у меня больше нет этой кодовой базы), но проблема в моем случае, вероятно, заключалась в сочетании отладки Async-Await с контрактами кода. Я не видел проблемы, когда не использовал кодовые контракты.

person Ladislav Mrnka    schedule 05.08.2013
comment
или Fody, или другие инструменты для перезаписи IL. - person kerem; 26.03.2014
comment
Черт бы тебя побрал, Code Contracts, ты мне начинал нравиться. Я могу подтвердить, что проблема в них. Они должны уйти сейчас же. - person Ivan Zlatanov; 06.01.2015