Visual Studio:是否有“移动类到不同的命名空间”重构?

我正在做一些架构清理,涉及将一堆类移动到不同的项目和/或命名空间中。 目前我正在手动移动文件,构建,然后根据需要手动添加使用Foo语句来解决编译错误。 有谁知道这样做的更聪明的方法? (我们是CodeRush和Refactor!商店,但我很想知道Resharper是否支持这个)

Resharper是我知道具备这种能力的唯一工具。 CodeRush和Refactor中还缺少许多其他function!

Visual Studio 2010可以重命名命名空间。 将光标放在命名空间名称上,然后按F2 。 或者只需在代码中重命名,然后在看到红色波形后出现,按Shift + Alt + F10Enter键

Reharper还可以重命名名称空间 。 引用:

重命名命名空间重构允许用户重命名特定命名空间并自动更正代码中对命名空间的所有引用。 以下用法重命名为:

  • 命名空间语句
  • 使用指令
  • 类型的合格名称

此答案适用于至少Visual Studio 2013和2015 ,不需要resharper

  1. 将类文件移动到新文件夹
  2. 打开’查找并替换’
  3. 选择“替换文件”
  4. 在“查找内容”字段中键入原始命名空间定义,例如。 MyCorp.AppStuff.Api
  5. 在“替换为”字段中键入新的命名空间定义,例如。 MyCorp.AppStuff.Api.Extensions
  6. 使用“查找范围”字段的浏览按钮...选择新文件夹,或键入文件夹路径
  7. 按“ 全部替换”按钮

使用Resharper: CTRL + R + O.

然后按两次向下箭头键选择“ 将类型移动到另一个命名空间”

VS 2015和VS 2017的部分解决方案没有Resharper使用免费扩展。

我今天喜欢的一个扩展(2017年底)是Fix Namespace VS Extension: https : //marketplace.visualstudio.com/items?itemName = vs-publisher599079.FixNamespace# overview

它分析解决方案的文件夹结构,并使用它进行命名空间重构。 不幸的是,它并不完美:它不能很好地跟踪依赖性,而是为我解决了大部分工作。

由于提供了上面的答案(我猜),这个function已被添加到CodeRush中。 只需将克拉放在要移动的Type上,您就会在Refactor上看到Move Type to Namespace选项! 上下文菜单。 这会将类型移动到新的命名空间并更新引用。 您可能仍希望将文件移动到与命名空间名称匹配的解决方案文件夹中。

如果你不能,或者不想使用Re $ harper, Notepad ++是你的朋友:

  1. 确保在Visual Studio中没有用于移动到新命名空间所需文件的已更改的更改
  2. 打开包含需要在Notepad ++中更改的命名空间的所有文件
  3. 打开查找和替换 (CTRL + H)
  4. 填写查找内容和替换字段
  5. 在所有打开的文档中全部替换
  6. 保存所有文档中的所有更改(CTRL + SHIFT + S)
  7. 切换到Visual Studio并重新加载所有文档(在提示符下为“是”)

DONE