Visual Studio 2022中C#代码片段无法完整生成问题求助
问题原因分析
- 问题出在代码生成工具对字符串插值内部复杂表达式的解析缺陷,而非
$或{字符本身。 - 多数轻量代码生成工具的语法解析逻辑比较简单,仅能处理
{变量名}这类基础字符串插值形式。当遇到{MethodBase.GetCurrentMethod().Name}这种包含方法调用、属性访问的嵌套复杂表达式时,工具的解析器会误判插值的结束边界,导致后续代码被错误识别为插值的一部分,进而触发截断。 - 首行能正常生成是因为工具是逐段解析代码的,首行(如方法定义)未触发解析异常,直到catch块中的复杂插值表达式才触发截断逻辑。
- 改成
throw new Exception(ex.Message);后,代码结构简单,工具无需处理复杂插值,自然能完整生成代码。
验证方案
可以尝试将复杂表达式提前赋值给变量,再进行插值,看是否能正常生成完整代码:
catch (MySqlException ex) { var currentMethod = MethodBase.GetCurrentMethod().Name; throw new Exception($"{currentMethod}.MySqlException : {ex.Message}"); }
内容的提问来源于stack exchange,提问作者yhackup
相关产品推荐
相关产品推荐

