问题
I installed Roslyn. Now, if I know where to look in Visual Studio, 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?)
回答1:
When using Visual Studio 2015:
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:
回答2:
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
回答3:
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.
回答4:
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;
回答5:
Don't forget to change class name range, to public class name.
:)
回答6:
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 '"Initialize interactive with Project" is missing for .Net Core Projects in Visual Studio 2019'
The workaround is to use #r command(#r "Path/MyDll.dll") to load the assembly manually as seen in the answer above.
来源:https://stackoverflow.com/questions/11135571/can-the-c-sharp-interactive-window-interact-with-my-code