【问题标题】:How to use a "flat" namespace in whole C# project如何在整个 C# 项目中使用“平面”命名空间
【发布时间】:2021-09-29 11:52:20
【问题描述】:

我想为我的整个 c# 类库使用相同的命名空间。但新文件的默认行为是使用像 [Base namespace].[Folder 1].[Folder 2] 这样的命名空间。

Visual Studio 2019 是否有一种简单的方法或插件可以让所有新文件使用相同的命名空间?所以只要[Base namespace] 是什么文件夹?

但只是针对单个项目,我不想更改全局文件模板。

【问题讨论】:

标签: c# visual-studio namespaces


【解决方案1】:

尽管在 cmets 中提到了所有问题,但有一种简单的方法可以实现这一点。只需转到项目属性并定义默认命名空间:

现在每个添加的类都定义了这个命名空间:

using System;
using System.Collections.Generic;
using System.Text;

namespace MyGlobalNamespae
{
    class Class1
    {
    }
}

【讨论】:

  • 这仍然将文件夹名称附加到命名空间。这只是针对项目命名空间的第一部分,但不会替换命名空间生成逻辑。
  • @DanielD 是的,这个解决方案与我要求的完全不同。
【解决方案2】:

我找到了令我满意的解决方法:

我安装了这个不错的扩展Visual Studio Namespace Fixer。它允许您为命名空间定义模板,然后可以将其应用于项目中的所有 .cs、.xaml 和其他文件。

Options -> Namespace Fixer options -> Use default project namespace 下,我为Namespace format 定义了{projectRootNamespace} 格式。

我只需要在项目基础文件夹中选择我的文件和文件夹(在 Visual Studio 中,而不是在 Windows 资源管理器中),右键单击并选择 Adjust namespaces,所有子文件夹中的所有文件都会将其命名空间更改为项目根目录命名空间:-)

如果您在 NuGet 库中创建和使用大量类和其他文件,那就太棒了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-08
    • 2012-11-22
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    相关资源
    最近更新 更多