Roslyn:声明变量然后列出它们

问题描述 投票:0回答:1

我正在寻找的似乎是重叠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());
c# roslyn roslyn-code-analysis
1个回答
0
投票

实际上我找到了答案,这很简单。我只需要脚本引擎。为了得到变量,我做了类似下面代码片段中的最后一行:

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

结果将是这样的:

a, System.Int32, 10
b, System.Int32, 20
© www.soinside.com 2019 - 2024. All rights reserved.