我发现自己无数次重新组织我们的解决方案(72多个项目),努力减少代码。很多时候,它涉及到拉出常见的类型/库并将它们四处移动。
它总是涉及一个重复的编译器错误,所以我必须在很多不同的地方修复相同的编译器错误。我正在寻找一个VS API的指南,这样我可以做一些代码生成/自动修复。
即使你没有确切的答案,你能给我指一下我该去哪看吗?有编译器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 key之间添加一个显式链接,并强制all实现equals/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{
}
然后我必须将这些更改级联到所有VO。(哎哟)
public class ExampleBusinessVO : BaseVO<ExampleBusinessKey>{
public override bool Equals(object obj){
}
}
public class ExampleBusinessKey: BaseKey{
}
现在我认识到我不能修复所有的错误,但是能够编写一些东西来检查类的编译错误是很好的。然后我可以制定一个实用的解决方案:
对于每个vos if错误:“使用泛型类型…需要1个类型参数”,然后读取类文件并找到实现basekey的类,然后将其添加到模板方法。
请注意,我正在寻找一个自动化的解决方案,而不是重构工具