c# - 如何在 Roslyn 中将给定的语句字符串解析为 StatementSyntax?
问题描述
我有一个 StatementSyntax 类型列表,称为“语句”,我想在其中插入一个语句,如“var obj = new object();”
我试过: ExpressionSyntax es = SyntaxFactory.ParseExpression("var obj = new object();")
但我不能将它插入到抛出异常“无法将 ExpressionSyntax(或 SyntaxNode)”转换为 StatementSyntax 的列表中。
ExpressionSyntax es = SyntaxFactory.ParseExpression(
declaredStat.Declaration.Type.ToFullString() + " " +
declaredStat.Declaration.Variables.FirstOrDefault().Identifier.ValueText +
" = String.Empty;"
);
statements.Insert(0, es);
它在上面的行中引发异常。
我希望以字符串形式给出的语句进入列表的某个索引,所以最终目标是:
BlockSyntax block= SyntaxFactory.Block(statements.ToArray());
但我无法使用从给定字符串插入语句的语句列表来构建语句。
解决方案
您不能在 StatementSyntax 列表中插入 ExpressionSyntax 对象。为什么不创建一个 ExpressionSyntax 列表并在该列表中插入新的 ExpressionSyntax 对象?
推荐阅读
- asp.net-core - SignalR Core JS 客户端未在“升级”请求中传递授权标头
- javascript - 来自 lambda 函数的 API 网关的 502 内部服务器错误响应
- c# - 如何使用单输入文本框使用winform和socket编程c#将多个输入写入硬件?
- html - 让单选按钮标签在我检查后保持相同的颜色
- python - 在 python 中,有没有比 for 循环更快的方法来标记矩阵(3D 数组)?
- c# - 如何在这段代码中用 do-while 替换 while?
- postgresql - 在另一个表中插入一个表中的值作为外键
- javascript - Javascript 根据值从下拉列表中获取选项
- c - 从 8 位到 32 位的位复制
- php - PHP 和 MySQL,使用外键从另一个表中获取数据