Вопрос по c#, .net, roslyn, visual-studio – Может ли интерактивное окно C # взаимодействовать с моим кодом?

125

Я установилРослин, Теперь, если я знаю, где искать в Visual Studio, я могу открыть «интерактивное окно C #» и запустить код:

> 5 + 3
8

Это мило. Теперь, как я могу взаимодействоватьmy code& # x2014; мои занятия? Предположим, у меня есть открытый проект.

> 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?)
@MattHickford Смотрите мой обновленный ответ для получения дополнительной информации sloth
Я всегда использую стандартное окно Immediate для этого - работает и с вашими собственными типами. Polyfun
Рослин не является интерактивным окном. Это API компилятора .NET. Вы уверены, что не пропустили вещи? Tigran
Это одна особенность, поставляемая с Roslynblogs.msdn.com/b/csharpfaq/archive/2012/01/30/… Colonel Panic
Что такое «стандартное немедленное окно»? Colonel Panic

Ваш Ответ

5   ответов
2

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

Например:

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

Вы можете открыть интерактивное окно, перейдя кViews > Other Windows > C# Interactive,

Затем просто щелкните правой кнопкой мыши ваш проект и запуститеInitialize Interactive with Project из контекстного меню.

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

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

C# command prompt

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

Immediate Window

-1 вопрос об использовании нового C # REPL (интерактивного окна), которое является частью roslyn. Посмотрите видео c9 Дона Сайма, где он использует интерактивное окно F # по мере своего развития. Хорошая вещь.channel9.msdn.com/Series/…
Я хочу добавить еще один полезный совет: если вы хотите использовать некоторые вещи во время выполнения, вы можете легко добавить эту директиву:#r "System.Runtime"
В проектах .Net Core пункт контекстного меню не появляется, поэтому требуется метод #r. Этот ответ идеально подходит для этого.
@JohnDhom Почему понижающий голос? Мои ответы полностью показывают, как взаимодействовать с вашим собственным кодом через интерактивное окно C # (там даже есть скриншот, показывающий это).
Благодарю. Мне больше нравится интерактивное окно C #. Непосредственное окно является недружественным, автозаполнения нет.Console.WriteLine("hey") The name 'Console' does not exist in the current context System.Console.WriteLine("hey") Expression has been evaluated and has no value Colonel Panic
66


Просто щелкните правой кнопкой мыши свое решение и выберите & quot; Сбросить Интерактив из проекта & quot ;.

Если вам нужна дополнительная информация, вот источник:
Использование интерактивного окна C #, которое поставляется вместе с Roslyn & # x2013; Часть 2

& quot; ... с проектом & quot; также работает на VS 2017
@MattHickford: какой тип проекта? Мы не проводили значительного тестирования, кроме простых ConsoleApplications и ClassLibraries.
В обновлении 3 VS 2015 есть «Инициализировать интерактив с проектом». при щелчке правой кнопкой мыши проекта в решении (в обозревателе решений).
Спасибо, это звучит правильно. Увы, он не работает так, как описано (в любом проекте, на котором я его пробую), появляется сообщение об ошибке, в котором говорится «неверное имя сборки». К сожалению, он не объясняет, о какой сборке идет речь. Я думаю, что программное обеспечение сломано. Colonel Panic
Ничто из этого больше не относится к VS 2015. Команда контекстного меню исчезла и#r не находит сборки моего проекта. Есть идеи?
35

Команда, которую вы хотите найти, теперь называется & quot; Initialize Interactive with Project & quot;

enter image description here

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

Нет, это не так. Я получил его точно в том же месте, как показано на скриншоте.
@ Кажется, он работает или не работает в зависимости от типа проекта, с которым вы работаете. с каким типом проекта вы работали, когда нашли его?
Удалено в VS2017 ...
Не работает с новым форматом csproj ... Неутешительно.
Я пытаюсь заставить это работать с библиотекой NetStandard, а опция отсутствует в контекстном меню.
1

class name диапазон, доpublic class name.
:)

Я нашел это полезным, хотя это может быть лучше в качестве комментария

Похожие вопросы