VS 2022 - 在所有文件中转换为文件范围的命名空间

VS 2022 - Convert to file-scoped namespace in all files

我正在将我的项目转换为 .NET 6,我想在所有地方使用文件范围的命名空间。但是转换工具只存在于编辑器中

有没有人发现是否有办法 运行 这个编辑器可以同时处理解决方案中的所有文件? (好像Rider有这个功能)

.editorconfig 中添加规则以使用文件范围的命名空间对我有用:

  • 在解决方案目录中创建一个 .editorconfig 文件
  • 在下方添加以下 line/content (docs, code - IDE0161)

示例.editorconfig 文件内容:

[*.cs]
csharp_style_namespace_declarations = file_scoped:warning

之后预览更改对话框有一个选项可以将修复应用到整个 project/solution:

EditorConfig 语法

csharp_style_namespace_declarations = file_scoped
dotnet_diagnostic.IDE0161.severity = error

备注

语法 option = rule:severity 迟早会变成 deprecated

我强烈建议您在开始为您的项目构建 .editorconfig 之前阅读 this article

我总是找不到应该更新的文件(在本例中为 .editorconfig)。我什至不知道是否应该在项目、Visual Studio 安装或 PC 上的任何文件夹中搜索它。所以我喜欢下面 link 中的答案,因为它说明了在界面中更改设置的位置。

我认为的最佳答案在这里: https://www.ilkayilknur.com/how-to-convert-block-scoped-namespacees-to-file-scoped-namespaces

它说您可以通过转到工具 => 选项 => 文本编辑器 => C# 更改代码样式首选项(并启用选项的显示以在文档/项目/解决方案中应用此首选项) => 代码风格,然后更改相关的首选项。