我正在使用VS2010和Resharper 5.1。
我有两个项目,一个是图书馆项目(Lib)和一个应用程序项目(App),App引用了Lib。
Lib包含一个在App和Lib中使用的类X.在App中我现在想要用Y类替换X的所有用法。在我的情况下,Y与X无关,但如果它使重构更容易,它可以从X继承。
我目前计划使用“查找用法”功能,逐个项目并逐个更改用法。有没有更容易/自动化的方法来做到这一点?
答案 0 :(得分:4)
Structural Search and Replace是你的朋友。你可以通过ReSharper | Find | Search with Pattern...
获得它。
X
类型的占位符,将其命名为TX
。$TX$
X
Y
ReSharper将向您显示它想要替换的X
的所有提及 - 确保选中树顶部的复选框,然后单击“替换”。
修改的
确实是在我们的“查找”模式中使用类型占位符,确保只引用类型 X
,而不是名为{{ 1}},重命名。
如果您希望以
结束X
而不是
using A.B.C;
/* later */
Y obObject = ...
我认为你可以通过以下方式实现这一目标:
A.B.C.Y myObject
,ReSharper | Options
中,定义一个新的配置文件,该配置文件只使用“指令”进行“优化”检查Tools | Code Cleanup
,ReSharper | Options
将Languages | C# | Namespace Imports
添加到“应始终导入的命名空间”A.B.C
ReSharper | Tools | Cleanup Code
来整理,然后将其添加到虽然这也会清理所有其他A.B.C
,这可能会使版本控制差异大于你想要的。