<#+#>はクラスフィーチャブロックです。このブロックの中に入れたものは、クラスステートメントの内部に書き込まれます。あなたはT4が生成し、このような何かコンパイルしようとした名前空間を追加する場合:
class MyT4TempGen {
public string run() {
inside here is code that uses a string builder to build up all your <# #> tags into one big statement
}
from here down all your <#+ #> tags are added
namespace Learn {
public class Converter {
}
}
}
これは、有効なC#コードではありませんが、名前空間は、クラス文の中に存在することはできません。あなたは、名前空間なしでそれを行うときは、これを取得します:#コードC有効です
class MyT4TempGen {
public string run() {
inside here is code that uses a string builder to build up all your <# #> tags into one big statement
}
from here down all your <#+ #> tags are added
public class Converter {
}
}
は、あなたのクラスは、T4コンパイラが作成する1のサブクラスになります。
ここには、サポートされるタグを説明するmsdn docsへのリンクがあります。 「クラス機能制御ブロック」のセクションを参照してください。 ttまたはt4ファイルに入力したものは解析され、.netコードに変換されるので、すべての通常の構文規則に従わなければならないことを覚えておいてください。
'<# #>'のコードは生成されているコードではなく、コードを生成するために実行されているコードなので、 – Pawel