2009-08-31 10 views
1

私のDALにはSubSonic 2.2を使用しています。この要件を満たすために、私はSubSonicによって生成されたクラスのいくつかをカスタマイズする必要があります。SubSonic 2.2で生成されたクラスをカスタマイズする方法

公共部分クラスカテゴリ:サンプルのためのActiveRecord、IActiveRecord、IOtherInterface

あなたは私にいくつかの手がかりを与えてもらえます。私は生成されたテンプレートをどこで変更できますか?ありがとう!

答えて

1

(編集:より良い答えをrunxc1の記事を参照してください)

あなたは他のインターフェースに追加するには、クラスファイルを生成するために使用するテンプレートを変更することができます。部分クラスにインターフェイスを追加することはできません。これは、生成されたすべてのクラスにこれを追加するという唯一のトリックです。自動的に生成されたクラスに入り、クラスファイルを生成した後で手動でインターフェイスを追加することもできます。

SubSonic 2.2テンプレートは3.0テンプレートよりも扱いが少し面倒ですが、テンプレートを変更するのはまだとても簡単です。

情報へのリンクは下記を参照してください:

あなたのオプション:

  1. はあなたのインターフェイスに(すべてのクラス)を追加するために生成に使用するテンプレートを変更します。 、または
  2. 生成に使用するテンプレートを変更して、if/switchesを追加して、特定の名前に一致する特定のクラスにインターフェイスを追加する、または
  3. インターフェイスに追加する生成クラスを編集する(各自動生成後に再実行する必要があります)

これらのaspxファイルを変更した後。次に、DALの.configファイルを更新して、カスタマイズされたaspxファイルへの新しいパスを指定し、通常どおりに再生する必要があります。

+0

感謝を使用しています私のコードの例です。あなたの共有は私にとってとても便利です。しかし、私はまだ質問があります。私はSubSonic 2.2をインストールした後、Templateフォルダを見つけませんでした。しかし、私はSS 2.1のフォルダで別のものを見る .. \ SubSonic 2.1ファイナル\ src \ SubSonic \ CodeGeneration \ Templates SS-2.1からテンプレートを使用し、SS-2.2を使用してクラスを生成すればOKですか? –

+1

そうだと思います。私は2.1を使用した後も元々テンプレートを変更していましたが、2.2にアップグレードしてテンプレートを変更しませんでした。 2.1と2.2の間には後方互換性の問題はありません。 –

+0

ありがとうございましたジム、私はSS2.1のテンプレートを試してみましたが、少し修正しました。今はすべてうまくいくはずです。 –

1

ジムは部分クラスを介してインターフェイスを追加できません。私はすべての生成されたファイルとAlteredクラスファイルを持つ1つのフォルダを保持し、私は変更されたクラスファイルへのインターフェイスを追加しています。上記

public partial class ContainerSearch : IContainerSearch 
{ 
} 

私は、ジムをそんなに今

+0

ああ、ありがとう。私はそれを知らなかった。私はあなたが他のクラスのインターフェイスを定義しなければならないと思った。 –

+0

私は両方の提案を試みましたが、うまくいきます。クラスオブジェクト(クラスのカテゴリ)のGet/Setメソッドをカスタマイズする必要があるので、テンプレートを少し編集する必要がありました。 ご協力いただき、ありがとうございます。 –

関連する問題