如何在没有编码的情况下强制整个项目文件中的C#根命名空间?

Joh*_*n K 4 .net c# namespaces visual-studio global-namespace

我想在任何.cs源文件的内容上强制使用根命名空间,这些文件没有将其内容包装在显式中namespace.换句话说,我希望将类和其他命名空间级结构保留在默认命名空间之外.
(使用Visual Studio在Windows .NET环境中工作)

在下面的示例中,我希望默认情况下将Car类强制进入MotorIndustry命名空间,即使它没有明确的命名空间编码.

Vehicle.cs(有命名空间)

namespace MotorIndustry {
    public class Vehicle {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

Car.cs(没有命名空间/默认)

public class Car : Vehicle {
    //...
}
Run Code Online (Sandbox Code Playgroud)

有没有办法通过Visual Studio,AssemblyInfo.cs文件或其他方式中的项目设置来完成这个"根命名空间"修改行为?

我的理解是VB.NET有这样的功能,但C#的行为有何不同?

关于为什么我这样问的一些背景:我有数百个类,程序员忘了将命名空间包装在一些.当我从其他项目引用程序集时,它会使用最终导致一些模糊情况的类来污染默认命名空间.

Joh*_*ers 5

使用ReSharper将类移动到适当的命名空间.事实上,5.0版(仍处于测试阶段)允许您全局更正名称空间.


另一种方法是让其他开发人员修复代码.

  • +1不会试图容纳一个糟糕的开发人员的邋..接下来,您需要找到一种方法使C#成为一种不区分大小写的语言. (2认同)

Jar*_*Par 5

听起来你正试图在C#中复制VB.Net的项目命名空间功能.这不是C#编译器或IDE支持的功能.您将无法通过修改项目文件来创建一个.您需要手动或通过工具将命名空间添加到项目中的每个文件.