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

Microsoftの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 に答える