質問

多くのアプリプロジェクトで使用されるファイルがあります。これらのファイルの唯一の違いは、WebServiceリファレンス名です。このようなコード:

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

上記のコードと同様に、「kevin.servicereference1」は、指定されたアプリプロジェクト名空間に置き換えられます。したがって、Dry(繰り返さないでください)によると、ファイルを多くのプロジェクトにコピーして、指定された部品の名前を手動で変更するだけではありません。テンプレートファイルの一部をプロジェクトに関連するものに簡単に置き換える方法はありますか?

役に立ちましたか?

解決

MicrosoftのT4コードテンプレートシステムを調べましたか?それはあなたが必要とするものかもしれません。

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

他のヒント

これは乾燥の問題ではありません。ファイルは似ているかもしれませんが、*唯一の操作 - 変数の宣言と割り当て - がすべてのタイプ**で異なるため、あなたは自分自身を繰り返していません。

共通の目的を共有している場合、クラスに共通の親を与えることを検討することをお勧めしますが、クラスが実際に何らかの形で関連していることを示唆する例は何もありません。

プロセスを自動化して自分で簡単にする方法を探している場合は、チェックしてください T4テンプレート (Microsoftがない)、OR postsharp. 。ここには、コード生成に関する他の多くのスレッドがあります。

ファイルで変更されているのは名前空間とクラス名だけの場合、他のすべての共通機能を基本クラスに抽出できます。次に、異なる使用ごとに、基本クラスから継承する派生クラスを作成します。派生クラスには、特定の名前空間/クラスを返す簡単な方法だけを持つことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top