Получение контекста отладчика в C # interactive

C # Interactive кажется намного более мощным, чем Immediate Window (по крайней мере, он обрабатывает лямбда-выражения, которые часто используются в LINQ - см. Инструмент быстрого просмотра отладки Visual Studio и лямбда-выражения), но похоже, что его нельзя использовать в качестве замены, поскольку он не знает о контексте отладчика. Есть ли способ получить доступ к контексту отладчика?

Я видел получение контекста отладчика в F # interactive, и для этого может потребоваться то же самое, но, возможно, есть новые / разные вещи.

http://extendedimmediatewin.codeplex.com/ может быть полезным, но выглядит довольно мертвым, хотя кто-то сказал 18 октября 2011 г., что он планировал перенести его на VB.Net (http://extendedimmediatewin.codeplex.com/discussions/75589).


person user276648    schedule 26.10.2011    source источник
comment
Отличный вопрос! Это самое важное приложение Roslyn IMO.   -  person lightw8    schedule 20.11.2011


Ответы (2)


Отказ от ответственности: я работаю в Microsoft в команде Roslyn.

К сожалению, сейчас у нас нет способа получить контекст отладчика. Мы понимаем, что это было бы полезно, и по мере того, как мы получим больше основных результатов для Roslyn, мы надеемся исследовать больше и посмотреть, что можно сделать.

person Kevin Pilch    schedule 26.10.2011
comment
Приятно знать, что это может когда-нибудь случиться. Спасибо за инсайдерский комментарий. - person user276648; 26.10.2011
comment
Спустя годы, обращались ли к этому когда-нибудь? - person Tim; 18.05.2016
comment
Интернет, Rails, все имеет интерактивную консоль. Я удивлен, что это принято не на всех платформах. - person Trip; 27.09.2016
comment
C # мог бы стать более развитым языком программирования в современную эпоху, как Python и многие другие, если бы команда была больше заинтересована в использовании и функциях программирования по последнему слову техники. Спустя много лет, чтобы отладить простой небольшой фрагмент кода, мне все еще нужно создать консольный проект целиком. Это одна из причин, почему люди, занимающиеся искусственным интеллектом, машинным обучением и интеллектуальным анализом данных, не выбирают C # в качестве основного языка. - person Tony; 09.09.2018
comment
Да, следующий проект на Python - person Tobias Feil; 25.06.2019

Не полное решение, но в VS2015 после запуска Initialize Interactive with Project вы можете использовать Debug> Attach to Process для подключения к процессу InteractiveHost.exe.

Затем вы можете отлаживать функции из своего проекта. Однако, как объяснил Кевин, вы не сможете отлаживать одноразовые функции в интерактивном окне.

В качестве побочного примечания https://stackoverflow.com/a/40650343/467110 указывает, что вам, возможно, придется Окно C # Interactive открывается перед открытием решения, чтобы успешно Инициализировать взаимодействие с проектом

person J Bryan Price    schedule 30.03.2017
comment
Только что сделал это в VS2017, и это потрясающе. Престижность! - person Alex; 09.01.2019
comment
Работает и в 2019 году. Кстати, если вы потеряете интерактивное окно после того, как VS переключится в режим отладки - просто перейдите в Просмотр - Другие окна - C # Interactive - person Alex from Jitbit; 27.09.2019