Может ли интерактивное окно С# взаимодействовать с моим кодом?

Я установил Roslyn. Теперь, если я знаю, где искать Visual Studio, я могу открыть "С# интерактивное окно" и запустить код:

> 5 + 3
8

Это мило. Теперь, как я могу взаимодействовать с моими кодами - моими классами? Предположим, что проект открыт.

> new Cog()
(1,5): error CS0246: The type or namespace name 'Cog' could not be found (are you missing a using directive or an assembly reference?)

Ответ 1

При использовании Visual Studio 2015:

Вы можете открыть окно "Интерактивное", перейдя по ссылке Виды > Другие ОС Windows > С# Interactive,

Затем просто щелкните правой кнопкой мыши проект и запустите Инициализировать интерактивный проект из контекстного меню.


Для более старых версий:

Чтобы использовать интерактивное окно С# с кодом, убедитесь, что вы сначала скомпилируете свой код, а затем добавьте ссылку на результирующую сборку с помощью команды #r следующим образом:

C# command prompt


Вы также можете использовать Immediate Window для взаимодействия с вашим кодом, например:

Immediate Window

Ответ 2

Вы можете использовать классы из своего собственного проекта.
Просто щелкните правой кнопкой мыши на своем решении и выберите "Reset Интерактивный проект".

Если вам нужна дополнительная информация, вот источник:
Использование интерактивного окна С#, которое поставляется с Roslyn - Part 2

Ответ 3

Просто обновление из ответа @Botz3000.

Команда, которую вы хотите найти, теперь называется "Инициализировать интерактивный проект"

введите описание изображения здесь

Также стоит отметить, что я не смог найти эту команду, если мое интерактивное окно С# не было видимым.

Ответ 4

Полностью согласен, что "Инициализировать Интерактив с Проектом" это круто.

Мой подход заключается в том, чтобы поместить классы в библиотеку и использовать //css_reference в скрипте С# или #r в интерактивном окне С#

Например:

#r "D:\\dev\\DbHMonData\\LoadH2Stats\\bin\\Debug\\DbHMonStats.dll"
using DbHMonStats;

Ответ 5

Не забудьте изменить диапазон класса, имя открытого класса.
:)

Ответ 6

Стоит отметить, что эта функция еще не поддерживается в VS 2019 для проекта .Net Core.

Вы не найдете вариант, и это известная проблема, как выделено в этом ответе '" инициализация интерактивной с помощью Project " отсутствует в .Net Core Projects в Visual Studio 2019'

Обходной путь - использовать команду #r (#r "Path/MyDll.dll"), чтобы загрузить сборку вручную, как показано в ответе выше.