【问题标题】:Is there a way to let the compiler determine the namespace my classes, based on the directory structure of my project?有没有办法让编译器根据我的项目的目录结构来确定我的类的命名空间?
【发布时间】:2012-01-16 16:57:51
【问题描述】:

在 .NET 和 Visual Studio 项目中,约定是让项目的物理目录结构类似于项目的命名空间结构。我完全同意这一点,每次我从事违反此准则的项目时,我都很难找到类型,因为通常不清楚如何导航命名空间层次结构。

然而,我遇到的一个问题是,在使用本指南时,将每个类包装在 namespace 中是冗余。此外,以后重构项目结构变得非常困难(没有商业重构工具),因为每个文件都需要更改。

我认为将类移动到不同的命名空间应该只是将该文件拖放到另一个目录中。

那么我们怎样才能做到这一点呢?有没有办法让编译器(或任何其他工具)根据我的项目的目录结构(在编译时)确定我的类的命名空间?

【问题讨论】:

    标签: c# .net visual-studio-2010 architecture namespaces


    【解决方案1】:

    Resharper 可以检测代码中与物理布局不匹配的命名空间。不幸的是,Resharper 并不便宜。

    AFAIK C# 编译器不知道命名空间和物理位置之间的任何关系,因此没有可用的此类选项。

    恕我直言,这应该内置到 Visual Studio 中。

    【讨论】:

    • Resharper 是否允许通过简单的点击更改所有不匹配的命名空间?
    • 是的,去你要修复的项目/文件夹/解决方案,右键单击,你可以通过重构菜单来完成。我认为该选项称为“调整命名空间...”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    相关资源
    最近更新 更多