【问题标题】:Automatic namespace change after moving classes within directory tree in Visual Studio在 Visual Studio 中的目录树中移动类后自动更改命名空间
【发布时间】:2018-02-06 15:23:23
【问题描述】:

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

如下结构

  • 项目
    • 目录1
      • 子目录1

产生以下命名空间:

命名空间 Project.Directory1.Subdirectory1

一开始一切都很干净,井井有条。但是后来,有时我们需要将某些类移动到其他地方。默认情况下,Visual Studio 不会在命名空间之后重构它。 IDE中是否有任何选项可以打开?有什么外部工具吗?

【问题讨论】:

  • Resharper 绝对可以通过 Refactor => Move 来做到这一点
  • @Lennart 谢谢,很高兴知道。也许我应该准确地说,我的意思是一些较小的附加组件,可能是免费的,因为 R# 是解决这样一个小问题的巨大解决方案。
  • 考虑到 R# 所做的一切,它是一项明智且价格合理的投资
  • 这个扩展刚刚出现在 VS 市场:marketplace.visualstudio.com/…
  • @Lennart 就是这样!谢谢。

标签: c# visual-studio namespaces


【解决方案1】:

没有 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 之外的所有引用,通常是通过错误日志。

这是“原始”方法,但速度很快,不需要任何外部程序/插件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多