Roslyn Scripting

wol*_*len 11 c# roslyn

嗨,我想在我的应用程序中使用Roslyn编写脚本.但我有新的(九月)版本,我很困惑.我想用一些简单的函数执行文件.例如:

public int m(){
      return 6;
}
Run Code Online (Sandbox Code Playgroud)

我找到了一些关于它的文章,比如说.有一些方法可以做到这一点,但在我的版本中我不Session.Create() 想像IronPython脚本一样使用它

就像是:

var scriptEngine = new SciptEngine.ExecuteFile(fileWithFunction);
dynamic d = getFunction(m);
Run Code Online (Sandbox Code Playgroud)

要么

dynamic d = callFunction(m);

是否有可能或者我必须使用IronPython脚本?

Jas*_*ski 17

自从撰写文章的原始CTP以来,API没有发生重大变化.对于您的场景:

var scriptEngine = new ScriptEngine();
var session = scriptEngine.CreateSession();
session.AddReference("System");
session.AddReference("System.Core");
session.Execute(@"public int m() { return 6; }");

int six = session.Execute<int>("m()");
Run Code Online (Sandbox Code Playgroud)