首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VS API,以方便在重构后自动修复代码中断的过程。

VS API,以方便在重构后自动修复代码中断的过程。
EN

Stack Overflow用户
提问于 2010-04-22 14:05:39
回答 1查看 136关注 0票数 2

为了减少代码,我发现自己已经无数次地重组了我们的解决方案(72 +项目)。很多时候,它涉及到提取公共类型/库并移动它们。

它总是涉及一个reptitive编译器错误,所以我不得不在许多不同的地方修复相同的编译器错误。我正在寻找一个VS指南,这样我就可以做一些代码生成/自动修复。

即使你没有确切的解决办法,你能告诉我我应该去哪里吗?有编译器api吗?重构api?对我怎么做这两件有什么建议吗?

用例:

因此,第一个问题(这两个问题中最简单):

当我将文件从一个项目移动到另一个项目时,自动修复。此过程将查找错误。

“无法找到类型或命名空间名称'MovedClass‘。

然后删除旧名称空间,添加新名称空间,并添加项目引用。

案件二..。重构成一个模式。

示例:

原始的基础VO课程:

代码语言:javascript
复制
   public class BaseVO{
      public AuditInfo { get;set;}

   }
   public class BaseKey{

   }

我们所有的业务对象(每个在单独的类中)。

代码语言:javascript
复制
   public class ExampleBusinessVO : BaseVO{
      public AuditInfo { get;set;}
      public ExampleBusinessKey BusinessKey { get;set;}
   }

   public class ExampleBusinessKey{


   }

现在假设我们希望在BaseVO和Base之间添加一个显式链接,并强制所有实现等于/HashCode

新的基础VO课程:

代码语言:javascript
复制
   public abstract class BaseVO<TKey>{
      TKey BusinessKey{get;set;}
      public abstract override bool Equals(object obj);          
      public abstract override int GetHashCode();

   }
   public class BaseKey{

   }

那么,我必须将这些更改级联到所有VOs。(哎哟)

代码语言:javascript
复制
   //Add generic
   public class ExampleBusinessVO : BaseVO<ExampleBusinessKey>{
       //Remove old business key  

        //Implement methods
       public override bool Equals(object obj){

       }
   }

   public class ExampleBusinessKey: BaseKey{


   }

现在我认识到我不能修复所有的错误,但是如果能够编写一些东西来检查类中的编译错误,那就太好了。然后我可以找出一个务实的解决方案:

对于每个VOs错误:“使用泛型类型.需要一个类型参数”,然后读取类文件并找到实现BaseKey的类,然后将其添加到模板方法中。

请注意,我正在寻找一个自动化的解决方案,而不是重构工具

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-22 14:13:37

就我个人而言,我推荐ReSharper,因为它为您可能需要的大部分重构工作提供了功能。

移动类型(甚至在项目之间)、重命名类型、提取方法、重新排序方法签名等。

这是一个有偿的解决方案,但很值得你的钱(或你的雇主)。你可以下载一个免费的试用,从网站是充分发挥作用,以获得它的感觉。

编辑:

好的,所以我刚刚测试了它,ReSharper将处理将一种类型移动到另一种项目所需的所有工作,但是它不会自动为您添加引用。但是,它确实为您提供了需要新引用的合理警告,使用ReSharper添加这些引用非常简单:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2691488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档