gpt4 book ai didi

c# - 使用 Roslyn 处理 C# 脚本时出现编译错误

转载 作者:太空狗 更新时间:2023-10-30 00:42:49 26 4
gpt4 key购买 nike

我正在使用 Roslyn 将 C# 脚本引擎嵌入到我的应用程序中,到目前为止,我可以毫无问题地执行代码。例如,我可以执行以下代码:

using System;
var str = "Hello Roslyn";
Console.WriteLine(str);

在用上面的代码片段构建语法树时,我遇到了编译问题。编译器提示语句直接嵌入到主命名空间中,这在编写普通 C# 程序时有意义,但在我的情况下不是这样,因为我采用脚本方式。

问题:有没有办法从 C# 脚本构建无错误的语法树?

编辑这是我用来构建语法树的代码。

SyntaxTree tree = SyntaxTree.ParseText(context.SourceCode);
Compilation compilation = Compilation.Create("CSharp", syntaxTrees: new[] {tree}, references: references);

谢谢

最佳答案

您需要指定您正在解析脚本代码而不是常规代码:

SyntaxTree tree = SyntaxTree.ParseText(source, options: new ParseOptions(kind: SourceCodeKind.Script));

关于c# - 使用 Roslyn 处理 C# 脚本时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13601412/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com