web-dev-qa-db-fra.com

La fenêtre interactive C # peut-elle interagir avec mon code?

J'ai installé Roslyn . Maintenant, si je sais où chercher dans Visual Studio, je peux ouvrir la "fenêtre interactive C #" et exécuter le code:

> 5 + 3
8

C'est mignon. Maintenant, comment puis-je interagir mon code - mes cours? Supposons que j'ai un projet ouvert.

> 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?)
142
Colonel Panic

Lors de l'utilisation de Visual Studio 2015:

Vous pouvez ouvrir la fenêtre Interactive en accédant à Vues> Autres fenêtres> C # Interactive ,

Ensuite, faites un clic droit sur votre projet et lancez Initialize Interactive with Project dans le menu contextuel.


Pour les anciennes versions:

Pour utiliser la fenêtre interactive C # avec votre code, assurez-vous d’abord de le compiler, puis ajoutez une référence à l’assembly obtenu avec le #r commande comme ceci:

C# command Prompt


Vous pouvez également utiliser la fenêtre immédiate pour interagir également avec votre code, comme suit:

Immediate Window

181
sloth

Vous pouvez utiliser des classes de votre propre projet.
Faites un clic droit sur votre solution et sélectionnez "Réinitialiser Interactive du projet".

Si vous avez besoin de plus d'informations, voici la source:
tilisation de la fenêtre interactive C # fournie avec Roslyn - Partie 2

66
Botz3000

Juste une mise à jour de la réponse @ Botz3000.

La commande que vous souhaitez rechercher s'appelle maintenant "Initialize Interactive with Project"

enter image description here

En outre, il est à noter que je ne pouvais pas trouver cette commande si ma fenêtre interactive C # n'était pas visible.

39
WizardHammer

Totalement d'accord, "Initialize Interactive with Project" est cool.

Mon approche consiste à insérer des classes dans une bibliothèque et à utiliser // css_reference dans un script C # ou # r dans une fenêtre interactive C #

Par exemple:

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

N'oubliez pas de changer nom de la classe range, en nom de la classe publique.
:)

2
ndukan