为了减少代码,我发现自己已经无数次地重组了我们的解决方案(72 +项目)。很多时候,它涉及到提取公共类型/库并移动它们。
它总是涉及一个reptitive编译器错误,所以我不得不在许多不同的地方修复相同的编译器错误。我正在寻找一个VS指南,这样我就可以做一些代码生成/自动修复。
即使你没有确切的解决办法,你能告诉我我应该去哪里吗?有编译器api吗?重构api?对我怎么做这两件有什么建议吗?
用例:
因此,第一个问题(这两个问题中最简单):
当我将文件从一个项目移动到另一个项目时,自动修复。此过程将查找错误。
“无法找到类型或命名空间名称'MovedClass‘。
然后删除旧名称空间,添加新名称空间,并添加项目引用。
案件二..。重构成一个模式。
示例:
原始的基础VO课程:
public class BaseVO{
public AuditInfo { get;set;}
}
public class BaseKey{
}我们所有的业务对象(每个在单独的类中)。
public class ExampleBusinessVO : BaseVO{
public AuditInfo { get;set;}
public ExampleBusinessKey BusinessKey { get;set;}
}
public class ExampleBusinessKey{
}现在假设我们希望在BaseVO和Base之间添加一个显式链接,并强制所有实现等于/HashCode
新的基础VO课程:
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。(哎哟)
//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的类,然后将其添加到模板方法中。
请注意,我正在寻找一个自动化的解决方案,而不是重构工具。
发布于 2010-04-22 14:13:37
就我个人而言,我推荐ReSharper,因为它为您可能需要的大部分重构工作提供了功能。
移动类型(甚至在项目之间)、重命名类型、提取方法、重新排序方法签名等。
这是一个有偿的解决方案,但很值得你的钱(或你的雇主)。你可以下载一个免费的试用,从网站是充分发挥作用,以获得它的感觉。
编辑:
好的,所以我刚刚测试了它,ReSharper将处理将一种类型移动到另一种项目所需的所有工作,但是它不会自动为您添加引用。但是,它确实为您提供了需要新引用的合理警告,使用ReSharper添加这些引用非常简单:

https://stackoverflow.com/questions/2691488
复制相似问题