我正在做一些架构清理,涉及将一堆类移动到不同的项目和/或命名空间中。目前我正在手动移动文件,构建,然后根据需要手动添加使用Foo 语句来解决编译错误。有人知道这样做的更聪明的方法吗? (我们是CodeRush和Refactor!商店,但我很想知道Resharper是否支持此事)
答案 0 :(得分:33)
Visual Studio 2010可以重命名命名空间。将光标放在命名空间名称上,然后按 F2 。或者只需在代码中重命名,然后在看到红色波形出现后按 Shift + Alt + F10 ,输入
Reharper也可以rename namespaces。引用:
重命名命名空间重构 允许用户重命名特定的 命名空间并自动纠正 所有对名称空间的引用 码。以下用法是 更名:
- 命名空间语句
- 使用指令
- 类型的合格名称
答案 1 :(得分:27)
Resharper是我知道具备此功能的唯一工具。 CodeRush和Refactor中还缺少许多其他功能!
答案 2 :(得分:8)
这个答案适用于至少Visual Studio 2013和2015 ,不需要resharper
MyCorp.AppStuff.Api
MyCorp.AppStuff.Api.Extensions
答案 3 :(得分:3)
VS 2015和VS的部分解决方案VS 2017 没有Resharper 使用免费扩展程序。
我今天喜欢的一个扩展程序(2017年底)是修复命名空间 VS扩展程序: https://marketplace.visualstudio.com/items?itemName=vs-publisher-599079.FixNamespace#overview
它分析解决方案的文件夹结构,并使用它进行命名空间重构。不幸的是,它并不完美:它没有很好地跟踪依赖关系,但却为我解决了大部分工作。
答案 4 :(得分:2)
使用Resharper: CTRL + R + O
然后按两次向下箭头键选择将类型移动到另一个命名空间。
答案 5 :(得分:1)
由于提供了上面的答案(我猜),这个功能已被添加到CodeRush中。只需将克拉放在要移动的 Type 上,您就会在Refactor上看到 Move Type to Namespace 选项!上下文菜单。这会将类型移动到新的命名空间并更新引用。您可能仍希望将文件移动到与命名空间名称匹配的解决方案文件夹中。
答案 6 :(得分:1)
自Visual Studio 2019开始,当当前文件名称空间与文件夹结构不匹配时,将提供新的``将名称空间更改为...''重构。
这可用于通过以下方式将各个类移至不同的名称空间:
该操作可确保所有引用均得到相应更新。
答案 7 :(得分:0)
如果您不能或不想使用Re $ harper, Notepad ++ 是您的朋友:
完成强>
答案 8 :(得分:0)
这不是最好的结果,但无需插件或工具即可完成,只能使用Visual Studio。在整个解决方案中查找和替换,区分大小写,匹配整个单词。 查找内容:类名,替换为:New.Namespace.ClassName(完全限定的类名)。
如果在旧名称空间中有100多个引用的已移动类和其他类,则不会被移动,这是我发现的唯一安全且免费的解决方案。唯一会导致错误的情况是在其他名称空间中具有相同的类名。