0

我有一个将在许多应用程序项目中使用的文件。这些文件的唯一区别是 Web 服务参考名称。像这样的代码:

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

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

4

3 回答 3

2

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

如果您的类具有共同的目的,您可能希望考虑为它们提供一个共同的父类,但您的示例中没有任何内容表明这些类实际上以任何方式相关。

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

于 2010-05-06T18:31:54.273 回答
2

你看过微软的 T4 代码模板系统吗?这可能正是您所需要的。

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

于 2010-05-06T18:33:21.513 回答
0

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

于 2010-05-06T18:35:54.157 回答