有没有像这样的自动生成代码的简单方法?

时间:2010-05-06 18:29:00

标签: c# visual-studio generated-code

我有一个将在许多应用项目中使用的文件。这些文件的唯一区别是webservice引用名称。像这样的代码:

public void Test(){
    Kevin.ServiceReference1.Service1Client client = new Kevin.ServiceReference1.Service1Client();
    // do something....
}

与上面的代码类似,'Kevin.ServiceReference1'将被指定的app项目命名空间替换。 所以,根据DRY(不要重复自己),我不应该只是将文件复制到许多项目并手动重命名指定的部分。有什么方法可以轻松地将模板文件的某些部分替换为与项目相关的内容吗?

3 个答案:

答案 0 :(得分:2)

这不是DRY的问题;虽然文件可能看起来很相似,但你并没有重复自己,因为唯一的操作 - 变量的声明和赋值 - 对于每种类型**都是不同的。

虽然你可能想要让你的班级成为一个共同的父母,如果他们有共同的目的,你的例子中没有任何东西表明这些类实际上是以任何方式相关的。

如果您正在寻找自动化流程的方法以使自己更轻松,请查看T4 Templates(从Microsoft免费获得)或PostSharp。这里有很多关于代码生成的其他线程。

答案 1 :(得分:2)

您是否研究过Microsoft的T4代码模板系统?这可能正是你所需要的。

链接:http://msdn.microsoft.com/en-us/vstudio/cc308634.aspx
http://visualstudiomagazine.com/articles/2009/05/01/visual-studios-t4-code-generation.aspx

答案 2 :(得分:0)

如果文件中唯一更改的是命名空间和类名,则可以将所有其他常用功能提取到基类中。然后,对于每个不同的用法,创建一个继承自基类的派生类。派生类可以只有一个返回特定命名空间/类的简单方法。