脚本上的 Roslyn 错误:字符串代码 = @"System.Threading.Thread.Sleep(300000);";
Roslyn error on script: string code = @"System.Threading.Thread.Sleep(300000);";
以下脚本:
string code = @"System.Threading.Thread.Sleep(300000);";
给我错误:
(1,31): error CS1022: Type or namespace definition, or end-of-file expected
(1,31): error CS1026: ) expected
验证代码:
public IEnumerable<Diagnostic> GetCodeErrorsAndWarnings()
{
var tree = CSharpSyntaxTree.ParseText(Code);
var diags = tree.GetDiagnostics().Where(d=>d.Severity == DiagnosticSeverity.Error || d.Severity == DiagnosticSeverity.Warning);
if (diags.Any())
{
foreach (Diagnostic diag in diags)
{
Debug.WriteLine(diag.ToString());
}
return diags;
}
return null;
}
canton7 有正确的答案,但他没有写...
问题是我没有使用脚本引擎,而不是期待一个简单的脚本,Roslyn 期待至少一个 class。我用 class 包装了我的函数,并且编译的所有内容都没有错误。
以下脚本:
string code = @"System.Threading.Thread.Sleep(300000);";
给我错误:
(1,31): error CS1022: Type or namespace definition, or end-of-file expected
(1,31): error CS1026: ) expected
验证代码:
public IEnumerable<Diagnostic> GetCodeErrorsAndWarnings()
{
var tree = CSharpSyntaxTree.ParseText(Code);
var diags = tree.GetDiagnostics().Where(d=>d.Severity == DiagnosticSeverity.Error || d.Severity == DiagnosticSeverity.Warning);
if (diags.Any())
{
foreach (Diagnostic diag in diags)
{
Debug.WriteLine(diag.ToString());
}
return diags;
}
return null;
}
canton7 有正确的答案,但他没有写...
问题是我没有使用脚本引擎,而不是期待一个简单的脚本,Roslyn 期待至少一个 class。我用 class 包装了我的函数,并且编译的所有内容都没有错误。