当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《VisualStudio:是否有"移动类到不同的命名空间"重构?》经验,为你挑选了4个好方法。

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



1> Darin Dimitr..:

Visual Studio 2010可以重命名命名空间.将光标放在命名空间名称上,然后按F2.或者只是在代码中重命名并按下Shift+ Alt+ F10,Enter看到红色波形出现后.

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

重命名命名空间重构,用户可以重命名一个特定的命名空间,并自动修正到代码中的命名空间的所有引用.以下用法重命名为:

命名空间语句

使用指令

类型的合格名称


@sbi - 是的,它可以.您可以在VS中创建新命名空间(即创建与新命名空间相对应的文件夹结构),然后将类型拖放到新文件夹中.Resharper现在会警告您,这些类型位于与其文件夹结构不对应的命名空间(旧命名空间)中(即新命名空间).然后它为您提供纠正它们的机会; 这将只更新已移动到新名称空间或子名称空间的类型.
当您想将标识符移动到命名空间时,它会有什么帮助?
@Igor:再次阅读问题.oleks希望将命名空间划分为子命名空间.这意味着将`NS :: C`移动到`NS :: NS1 :: C`.可以重命名命名空间吗?
@sbi通过将该类所在的命名空间重命名为新名称?

2> Josh..:

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


在大多数情况下,我真的很喜欢DevExpress工具,但是移动文件的功能似乎是一个简单的功能,令我惊讶的是它的缺失。我一直想测试Resharper一段时间,也许是时候...
@dmitri - 是的,它确实会变得很吵,特别是当你像我一样跑两个时; p你可以在选项中转动画画,如果那是困扰你的话.

3> gschuager..:

Visual Studio 2019提供至少2个内置选项:

可以在任何类上触发“移至名称空间...”重构,VS会提示您输入目标名称空间。

当前文件名称空间与文件夹结构不匹配时,提供“将名称空间更改为...”重构。

这可用于通过以下方式将各个类移至其他名称空间:

    创建所需的文件夹结构

    移动文件

    应用提到的重构(使用光标在名称空间上的CTRL +。)

这些操作确保所有引用都相应更新。


我在VS社区中看到了这两个选项,“移动到名称空间”确实可以更新引用

4> Gusdor..:

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

    将类文件移动到新文件夹

    打开'查找并替换'

    选择"替换文件"

    在"查找内容"字段中键入原始命名空间定义,例如.MyCorp.AppStuff.Api

    在"替换为"字段中键入新的命名空间定义,例如.MyCorp.AppStuff.Api.Extensions

    使用"查找范围"字段的"浏览"按钮选择新文件夹...,或键入文件夹路径

    Replace All按钮


这仅适用于您不将某个名称空间(您仍想使用)移动到另一个名称空间的情况.这基本上只有在您完全重命名命名空间时才有效.
推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有