Can the C# interactive window interact with my code?
C#.NetVisual StudioRoslynC# Problem Overview
In Visual Studio 2015 or later, I can open the 'C# interactive window', and run code:
> 5 + 3
8
That's cute. Now how can I interact my code—my classes? Assume I have a project open.
> 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?)
C# Solutions
Solution 1 - C#
When using Visual Studio between 2015 and 2022:
You can open the Interactive window by navigating to Views > Other Windows > C# Interactive,
Then just right click your project and run Initialize Interactive with Project from the context menu.
For older versions:
To use the C# Interactive Window with your code, ensure you first compile your code, then add a reference to the resulting assembly with the #r
command like so:
You can also use the Immediate Window to interact with your code as well, like so:
Solution 2 - C#
You can use classes from your own project.
Just right click on your solution and select "Reset Interactive from Project".
If you need more information, here is the source:
Using the C# Interactive Window that comes with Roslyn – Part 2
Solution 3 - C#
Just an update from the @Botz3000 answer.
The command you want to find is now called "Initialize Interactive with Project"
Also it is worth noting i could not find this command if my C# interactive window was not viewable.
Solution 4 - C#
It's worth noting that the feature isn't yet supported in VS 2019 for .Net Core project.
You won't find the option, and it's a known issue as highlighted in this answer https://stackoverflow.com/questions/56042332/initialize-interactive-with-project-is-missing-for-net-core-projects-in-visua
The workaround is to use #r command (#r "Path/MyDll.dll"
) to load the assembly manually as seen in the answer above.
Solution 5 - C#
Totally agree "Initialize Interactive with Project" is cool.
My approach is to push classes into a library and use //css_reference in C# script or #r in C# Interactive window
For example:
#r "D:\\dev\\DbHMonData\\LoadH2Stats\\bin\\Debug\\DbHMonStats.dll"
using DbHMonStats;