<分区>
我发现自己无数次重新组织我们的解决方案(超过 72 个项目),以努力减少代码。很多时候它涉及提取通用类型/库并将它们四处移动。
它总是涉及一个重复的编译器错误,所以我不得不在很多不同的地方修复相同的编译器错误。我正在寻找 VS api 指南,以便我可以进行一些代码生成/自动修复。
即使您没有确切的解决方案,您能指出我应该看的地方吗?有编译器api吗?重构api?关于我如何做任何一个的任何建议?
用例:
那么第一个问题(两个中最简单的一个):
当我将文件从一个项目移动到另一个项目时自动修复。这个过程就是找错误
"The type or namespace name 'MovedClass' could not be found.
然后删除旧命名空间,添加新命名空间,并添加项目引用。
案例二...重构为模式。
例子:
原始基础 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 之间添加一个显式链接,并强制所有实现 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。 (哎哟)
//Add generic
public class ExampleBusinessVO : BaseVO<ExampleBusinessKey>{
//Remove old business key
//Implement methods
public override bool Equals(object obj){
}
}
public class ExampleBusinessKey: BaseKey{
}
现在我知道我无法修复所有的错误,但是如果能够编写一些东西来检查一个类的编译错误就更好了。然后我可以开发一个务实的解决方案:
对于每个VO如果报错:“使用泛型类型...需要1个类型参数”,然后读取类文件并找到实现BaseKey的类,然后将其添加到模板方法中。
请注意我寻找的是自动化解决方案而不是重构工具