2017-12-27 29 views
0

私が探しているものは、Roslynコンパイラのスクリプティングとコンパイルの機能と重複しているようですが、私はどちらを使うべきか混乱しています。Roslyn:変数を宣言してリストする

変数を宣言したり定義したり(そしてその値を評価したい)、私はいくつかのポイントリストと、おそらくは名前/タイプを調べています。 CodeAnalysisパッケージまたはコンパイラが必要ですか?そしてどうやって?

例:

// 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()); 

答えて

0

は、実際に私は答えを見つけ、それは非常に簡単でした。私が必要としたのはScripting Engineだけでした。私は次のスニペットで最後の行のような何かをした変数を取得するには:

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

 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()}"); 
     } 

を結果は次のようなものになるだろう

関連する問題