如何在 class 模板中使用文件范围的命名空间声明?

How can I use a file-scoped namespace declaration in a class template?

C# 10 引入了 file-scoped namespaces,我想在 Visual Studio 的 class 模板中使用它。我已将 'Class' 模板文件更新为以下内容:

namespace $rootnamespace$;
class $safeitemrootname$
{
    //I put this comment here to make sure it's using the right file
}

但是当我创建一个新的空 class 时,我得到了这个自动生成的代码:

namespace ProjectName
{
    internal class Class1
    {
        //I put this comment here to make sure it's using the right file
    }
}

我需要做什么才能使空 class 的自动生成代码看起来像这样?

namespace ProjectName;  
internal class Class1
{

}

作为参考,我使用的是 Visual Studio 2022 Professional,我的项目使用的是 C#10 和 .NET 6。

我修改的class模板文件位置为:C:\Program Files\Microsoft Visual Studio22\Professional\Common7\IDE\ItemTemplates\CSharp\Code33\Class\Class.cs

检查此线程:

他们使用 .editorconfig 文件,您可以在其中指定名称空间声明样式。在 VS 2022 中创建新文件时,它将使用该新样式

您必须设置项目的编辑器配置以优先使用文件范围的命名空间。

  1. 右键单击您的项目。 Select“添加”→“新项目”

  2. Select“编辑器配置文件 (.NET)”

  3. 双击新的 editorconfig 文件。在“代码样式”选项卡中,将“命名空间声明”设置为“文件范围”

代码模板现在可以正常工作了。