You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让Visual Studio 2017命名规则应用于自动生成的设计器代码?

让Visual Studio 2017命名规则覆盖设计器生成代码的方法

没问题,这个需求完全可以实现!下面是具体的操作步骤,一步步来就能搞定:

1. 修改命名规则的适用范围,包含生成代码

默认情况下,VS会把带[GeneratedCode]属性的设计器代码排除在命名规则检查之外,所以第一步要调整规则的适用范围:

  • 打开VS的设置窗口:点击顶部菜单栏的 ToolsOptions
  • 依次展开 Text EditorC#Code StyleNaming
  • 在已定义的规则列表里,找到你设置的「私有字段以下划线开头」的规则,点击规则右侧的「编辑」按钮
  • 在弹出的「编辑命名样式规则」窗口中,切换到「适用范围」(Scope)标签页
  • 找到「生成的代码」相关选项,取消勾选「排除生成的代码」(VS2017里这个选项控制是否忽略生成代码)
  • 保存设置,关闭窗口

2. 确保项目代码分析不排除Designer文件

有些项目默认会把*.Designer.cs文件排除在代码分析之外,需要检查并移除排除:

  • 在解决方案资源管理器里右键你的项目,选择「属性」
  • 切换到「代码分析」标签页
  • 查看「排除的文件」列表,如果里面有*.Designer.cs,选中它并点击移除按钮
  • 保存项目属性设置

3. 可选:用.editorconfig强化规则(更稳定)

如果上面的设置生效不够稳定,推荐用.editorconfig文件来统一配置,VS2017完全支持这种方式:

  • 在项目根目录新建一个名为.editorconfig的文件
  • 粘贴以下配置内容(对应你的私有字段下划线规则):
[*.cs]
# 定义私有字段命名规则
dotnet_naming_rule.private_fields_with_underscore.severity = suggestion
dotnet_naming_rule.private_fields_with_underscore.symbols = private_fields
dotnet_naming_rule.private_fields_with_underscore.style = underscore_prefix_style

# 指定规则适用的符号:私有字段(包括只读)
dotnet_naming_symbols.private_fields.applicable_kinds = field
dotnet_naming_symbols.private_fields.applicable_accessibilities = private
dotnet_naming_symbols.private_fields.required_modifiers = readonly

# 定义下划线前缀的样式
dotnet_naming_style.underscore_prefix_style.prefix = _
dotnet_naming_style.underscore_prefix_style.capitalization = camel_case
dotnet_naming_style.underscore_prefix_style.word_separator = none

# 确保Designer文件应用规则
[*.Designer.cs]
dotnet_analyzer_diagnostic.severity = all
  • 保存文件后,VS会自动加载这个配置,规则会覆盖项目和全局设置

最后一步:让设置生效

做完上面的操作后,建议:

  • 重启Visual Studio,确保所有设置加载到位
  • 右键项目选择「清理」→「生成」,触发代码分析检查
  • 对于已有的设计器生成字段,可以用VS的「快速操作」(快捷键Ctrl+.)批量修复不符合规则的命名

这样不管是手动写的代码还是设计器生成的代码,都会统一应用你的下划线开头的私有字段命名规则啦!

内容的提问来源于stack exchange,提问作者rory.ap

火山引擎 最新活动