我怎样才能得到这个来源的结果
var src = @"public class Test
{
public IList<string> CallMe(int count = 10)
{
return Enumerable.Range(0, count).Select(x => $""Number-{x}"").ToList();
}
}";
由 C# 中的 Roslyn ScriptEngine 实现?
我该怎么做?
object result = await CSharpScript.EvaluateAsync("new Test().CallMe(20)");
最佳答案
实现此目的的方法之一是使用 Roslyn 脚本的延续来保持先前的执行状态:
var src = @"public class Test
{
public IList<string> CallMe(int count = 10)
{
return Enumerable.Range(0, count).Select(x => $""Number-{x}"").ToList();
}
}";
var options = ScriptOptions.Default
.AddReferences("mscorlib", "System.Core") // assume that it's run under .netframework
.AddImports("System", "System.Linq", "System.Collections.Generic");
var list = CSharpScript.RunAsync(src, options).Result
.ContinueWithAsync<IList<string>>("new Test().CallMe(20)").Result.ReturnValue;
关于c# - 如何使用 C# ScriptEngine 执行类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52754473/