我使用Roslyn将C#脚本引擎嵌入到我的应用程序中,到目前为止,我可以毫无问题地执行代码.我可以举例来说,执行以下代码:
using System;
var str = "Hello Roslyn";
Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)
在上面的代码片段中构建语法树时,我遇到了编译问题.编译器抱怨直接嵌入到主命名空间中的语句,这在编写普通的C#程序时是有意义的,但在我的情况下不是这样,因为我是以脚本的方式.
问题: 有没有办法从C#脚本构建无错误的语法树?
编辑 这是我用来构建语法树的代码.
SyntaxTree tree = SyntaxTree.ParseText(context.SourceCode);
Compilation compilation = Compilation.Create("CSharp", syntaxTrees: new[] {tree}, references: references);
Run Code Online (Sandbox Code Playgroud)
谢谢
您需要指定您正在解析脚本代码而不是常规代码:
SyntaxTree tree = SyntaxTree.ParseText(source, options: new ParseOptions(kind: SourceCodeKind.Script));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
752 次 |
| 最近记录: |