我正在使用带有Resharper 5.1的VS2010。
我有两个项目,一个库项目(Lib)和一个应用程序项目(App),应用程序引用Lib。
Lib包含在App和Lib中都使用的X类。在App中,我现在想用类Y替换X的所有用法。在我的情况下,Y与X无关,但是如果可以简化重构,它可以从X继承。
我当前的计划是使用“查找用法”功能,按项目分组并逐一更改用法。有没有更简单/自动的方式来做到这一点?
最佳答案
Structural Search and Replace是您的 friend 在这里。您可以通过ReSharper | Find | Search with Pattern...
来实现。
X
类型的占位符,将其命名为TX
。 $TX$
X
的所有用法Y
的完全限定名称ReSharper将向您显示所有要替换的
X
的内容-确保选中树顶部的复选框,然后单击“替换”。编辑
确实是通过在我们的“查找”模式中使用类型占位符来确保仅重命名对
X
类型的引用,而不是对任何其他名称为X
的引用进行重命名。如果您想结束
using A.B.C;
/* later */
Y obObject = ...
而不是
A.B.C.Y myObject
我认为您可以通过以下方式实现这一目标:
ReSharper | Options
,Tools | Code Cleanup
中,定义一个新的配置文件,该配置文件仅通过“优化'using'指令”进行检查ReSharper | Options
中,Languages | C# | Namespace Imports
将A.B.C
添加到“应始终导入的命名空间中” ReSharper | Tools | Cleanup Code
A.B.C
来整理尽管这也会清除所有其他
using
,这可能会使版本控件的diff比您想要的大一点。