2017-12-27 5 views
0

Was ich suche, scheint die Skripting- und Kompilierungsfunktionen des Roslyn-Compilers als solche zu überlappen. Ich bin verwirrt darüber, welche ich verwenden sollte.Roslyn: Deklariere Variablen und listet sie dann auf

Ich möchte Variablen deklarieren/definieren (und ihre Werte auswerten), wie ich gehe und an einer bestimmten Stelle dann vielleicht nach Name/Typ. Benötige ich ein CodeAnalysis-Paket oder einen Compiler? und wie?

Beispiel:

// I'd like to add the following to my scripting or compilation engine: 
int a = 1 + 2; 
string b = "some " + a; 
// and then get a listing of their names, types, and values: 
foreach(var myvar in script.ListVariables()) 
    Console.WriteLine(myvar.Name + " " + myvar.Type + " " + myvar.Value.ToString()); 

Antwort

0

Eigentlich fand ich die Antwort, und es war ganz einfach. Alles was ich brauchte war die Scripting Engine. Um Variablen, die ich so etwas wie die letzte Zeile im folgenden Ausschnitt tat:

 var script = CSharpScript.Create(""); 
     script = script.ContinueWith("int a = 10;"); 
     script = script.ContinueWith("int b = 20;"); 

     var vars = script.RunAsync().Result.Variables; 
     foreach(var v in vars) 
     { 
      Console.WriteLine($"{v.Name}, {v.Type}, {v.Value.ToString()}"); 
     } 

Das Ergebnis wäre so etwas wie:

a, System.Int32, 10 
b, System.Int32, 20 
Verwandte Themen