CodeSmith使用チュートリアル(4):基本構文-CodeTemplate命令

2103 ワード

CodeSmithテンプレートを使用してコードを自動的に生成し、コードテンプレートを作成するための基本的な知識について説明します.CodeSmithの最も核心的な部分はコードテンプレートであるとも述べ、本編からCodeSmithコードテンプレートの基本文法を紹介し、Asp.Netプログラマーにとって、古い友达に会ったと言える:-)、CodeSmithのコードテンプレートとAsp.Net Pageはほぼ同じです.
この記事では、テンプレートに必要な唯一の宣言であるCodeTemplateコマンドについて説明します.テンプレートで使用される言語、生成された言語、テンプレートに関する説明を含むテンプレートの特殊な属性が含まれています.例:
<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="This is a demo template" %>

パラメータの説明:
Language:テンプレートの作成時に使用する言語、例えばC#,VB.NET、Jscriptなど.
TargetLanguage:テンプレートコードの分類にすぎず、生成されたコード言語には影響しません.テンプレートのプロパティです.テンプレートがその言語に基づいて対応するコードを生成することを示します.たとえば、CodeSmithを使用して任意の言語からC#コードを生成できます.
Description:テンプレートのいくつかの説明情報について、CodeSmith Explorerでテンプレートを選択すると、ここの情報が表示されます.
Inherits:CodeSmithテンプレートのデフォルトはCodeSmithから継承されます.Engine.CodeTemplate、このクラスはテンプレートが使用するいくつかの基本的な機能を提供して、ASP.NETページのPageクラスは、継承するクラスの属性を変更することができるが、これらの新しいクラスもCodeSmithを継承しなければならない.Engine.CodeTemplate.CodeSmithも同様にこのクラスを見つけることができます.もちろん、このクラスを含むコンポーネントを導入します.
Src:いくつかの点でSrcと継承Inheritsは似ていますが、他のクラスからいくつかの機能をテンプレートに含めることができます.この2つのプロパティの違いは、Srcがクラスとテンプレートを動的にコンパイルできることですが、Inheritsはコンパイルされたクラスまたはコンポーネントを1つだけ提供することができます.
Debug:テンプレートにデバッグ記号を含めることができるかどうかを決定できます.この属性をTrueに設定場合、Systemを使用することができる.Diagnostics.Debugger.Break()メソッドでブレークポイントを設定します.
LinePragmas:Trueに設定すると、テンプレートのエラーがテンプレートのソースコードに指し示されます.Falseに設定すると、テンプレートのエラーがコンパイルされたソースコードに指し示されます.
ResponseEncodingは、コードテンプレートの出力ファイルの符号化方式を示す、Systemとすることができる.Text.Encoding.GetEncodingがサポートするすべての符号化方式は、出力ファイルがすでに存在し、生成する内容と一致している場合、出力ファイルの符号化方式は変化しません.
OutputTypeは、出力ファイルの出力モードを示し、の3つのモードがあります.
Normal:通常モード、コードテンプレート出力内容は通常の出力ストリーム(Response Stream)に書き込まれます.トレース:出力内容がトレース(デバッグ)出力ストリームに書き込まれます.None:制御コードテンプレートは何も出力しません.主にマスター-スレーブテンプレートのマスターテンプレートで使用されます.マスターテンプレートから何も出力する必要がない場合があります.
NoWarnはいくつかのコンパイル警告を表示せず、WarningのIDはカンマで区切られ、主にC#とVBのコンパイルに使用される.Netで使用します.
ClassNameがCode-Behindを使用する場合のクラス名はAspに類似する.Netコード.
Namespace Code-Behindを使用する場合に対応するクラスネームスペース名.
Encodingコードテンプレート自体で使用する符号化方式は、デフォルトではUTF-8である.