替换特定项目中的类的使用
我用Resharper 5.1使用VS2010。
我有两个项目,一个库项目(Lib)和一个应用程序项目(App),App引用Lib。
Lib包含一个在App和Lib中都使用的类X. 在应用程序中,我现在想用类Y替换X的所有用法。在我的情况下,Y与X无关,但如果重构更容易,它可以从X继承。
我目前的计划是使用“查找用法”功能,按项目逐组,逐个更改用法。 有没有更容易/自动的方式来做到这一点?
结构搜索和替换是你的朋友在这里。 你通过ReSharper | Find | Search with Pattern...
获得它 ReSharper | Find | Search with Pattern...
ReSharper | Find | Search with Pattern...
X
类型的占位符,将其命名为TX
。 $TX$
X
所有用法 Y
的完全限定名称 ReSharper会向您显示它想要替换的所有X
的提及 - 确保选中树顶部的复选框,然后单击替换。
编辑
通过在我们的Find模式中使用一个类型占位符的确可以确保只有对类型X
引用而不是其他名称为X
引用被重命名。
如果你更喜欢结束
using A.B.C;
/* later */
Y obObject = ...
而不是
A.B.C.Y myObject
我认为你可以通
ReSharper | Options
ReSharper | Options
, Tools | Code Cleanup
Tools | Code Cleanup
,定义一个新的配置文件,它只是使用'指令'选中“优化” ReSharper | Options
ReSharper | Options
, Languages | C# | Namespace Imports
Languages | C# | Namespace Imports
Languages | C# | Namespace Imports
将ABC
添加到“应始终导入的命名空间” ReSharper | Tools | Cleanup Code
ReSharper | Tools | Cleanup Code
使用您刚定义的配置文件ReSharper | Tools | Cleanup Code
ABC
来清理您添加的名称 虽然这也会清理所有其他using
s,这可能会使版本控制差异比你想要的大一点。