Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有编码的情况下,如何在整个项目文件中强制使用C#根命名空间?_C#_.net_Visual Studio_Namespaces_Global Namespace - Fatal编程技术网

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

在没有编码的情况下,如何在整个项目文件中强制使用C#根命名空间?,c#,.net,visual-studio,namespaces,global-namespace,C#,.net,Visual Studio,Namespaces,Global Namespace,我想对任何.cs源文件的内容强制使用根命名空间,这些文件的内容没有包装在显式命名空间中。换句话说,我希望将类和其他命名空间级结构保留在默认命名空间之外。 (使用Visual Studio在Windows.NET环境中工作) 在下面的示例中,我希望在默认情况下强制Car类进入MotorIndustry名称空间,即使它没有显式编码的名称空间 Vehicle.cs(具有名称空间) Car.cs(无名称空间/默认) 是否有办法通过Visual Studio中的项目设置、AssemblyInfo.cs文件

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

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

Vehicle.cs(具有名称空间)

Car.cs(无名称空间/默认)

是否有办法通过Visual Studio中的项目设置、AssemblyInfo.cs文件或其他方式完成此“根命名空间”修改行为?

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


关于我为什么要问这个问题的一些上下文:我有数百个类,而程序员忘记了在一些类周围包装名称空间。当我从其他项目引用程序集时,它会用类污染默认命名空间,最终导致一些不明确的情况。

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



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

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

否,在C中无法像在VB.NET中那样全局命名类文件。John有你的答案:第三方重构工具。我认为Visual Studio中网站项目的独特情况(不是Web应用程序)往往不会为App_Code特殊文件夹下编写的类生成名称空间,或者至少不会为用户控件和页面生成名称空间,我认为这就是问题的根源。无论如何,我已经开始将所有内容包装在显式名称空间中,甚至包括用户控件.ascx和asp.net页面,以便对所有内容进行更“强类型”的访问。随着项目的发展,它变得更易于管理。+1@John:我会让另一个开发人员修复代码(提示)并运行ReSharper。+1不要试图迁就一个糟糕的开发人员的草率。接下来,您需要找到一种使C#成为不区分大小写的语言的方法。
namespace MotorIndustry {
    public class Vehicle {
        // ...
    }
}
public class Car : Vehicle {
    //...
}