替换特定项目中的类的使用
我用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,这可能会使版本控制差异比你想要的大一点。
