在 Visual Studio 中的目录树中移动类后自动更改命名空间

Lan*_*eyo 5 c# namespaces visual-studio

当用户向 Visual Studio 中的项目添加项目(如类或接口)时,IDE 会自动设置默认命名空间。每个程序集都有默认的命名空间,如果项目内有子文件夹,则目录结构会反映在命名空间中。

以下结构

  • 项目
    • 目录1
      • 子目录1
        • 班级

产生以下命名空间:

命名空间 Project.Directory1.Subdirectory1

一开始,一切都很干净,组织得很好。然而后来,有时我们需要将一些班级转移到其他地方。默认情况下,Visual Studio 不会重构其后的命名空间。IDE中有没有可以打开的选项?有没有任何外部工具可以实现?

Avi*_*ius 2

没有 Resharper 或 NamespaceFixer 的解决方案:

  1. 创建名为 NestedNamespace 或任何您喜欢的名称的新文件夹
  2. 将所需的类移动到新文件夹
  3. 进入Ctrl + Shift + H
  4. 在部分下Look in单击三点按钮(“选择搜索文件夹”)
  5. 添加新文件夹
  6. 在部分下Find what输入namespace MasterNamespace
  7. 在部分下Replace with输入namespace MasterNamespace.NestedNamespace
  8. 点击Replace All
  9. (可选)通过替换MasterNamespace.NestedNamespace.NestedNamespace=>删除重复项MasterNamespace.NestedNamespace

通过这种方式,您需要手动更新 NestedNamespace 之外的所有引用,通常是通过错误日志。

这是“原始”方法,但速度相当快,并且不需要任何外部程序/附加组件。