替换特定项目中的类的使用

我用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 | OptionsTools | Code Cleanup Tools | Code Cleanup ,定义一个新的配置文件,它只是使用'指令'选中“优化”
  • ReSharper | Options ReSharper | OptionsLanguages | C# | Namespace Imports Languages | C# | Namespace Imports Languages | C# | Namespace ImportsABC添加到“应始终导入的命名空间”
  • 运行ReSharper | Tools | Cleanup Code ReSharper | Tools | Cleanup Code 使用您刚定义的配置文件ReSharper | Tools | Cleanup Code
  • 通过从名称空间列表中删除ABC来清理您添加的名称
  • 虽然这也会清理所有其他using s,这可能会使版本控制差异比你想要的大一点。

    链接地址: http://www.djcxy.com/p/55221.html

    上一篇: Replace usage of a class in a specific project

    下一篇: Python subprocess in .exe