8

TextTransform.exe を使用してテンプレートからコードを生成するときに、引数 -a を使用する方法の例が見つかりません。MSDNには、引数 -a の次の説明があります。

「ディレクティブ プロセッサが名前と値のペアとしてクエリできるパラメータを指定します。ディレクティブ プロセッサと識別子はオプションです。これにより、任意のディレクティブ プロセッサまたは特定のディレクティブ プロセッサの任意のインスタンスに対してパラメータを指定できます。」

テンプレートには、接続文字列などの一連の引数が必要です。私の考えは、引数 -a を使用して構成ファイルへのパスを取得することでした。

よろしく アントン・カルシック

更新: 明確にするために、テンプレートでパラメーターを直接読み取りたいと思います。

4

2 に答える 2

8

テキストテンプレート変換ツールキット(T4)は、Microsoftの製品であり、あまりサポートされていません。ほんの数例。詳細については、 OlegsSychsブログにアクセスしてください。T4はここで非常に深く説明されています。

テンプレートのTextTransform.exeからパラメータを取得しようとして数時間後、解決策を見つけました。

次のように要素にhostspecific="true"属性を追加します。template

<#@ template language="C#v3.5" hostspecific="true"#>

ResolveParameterValueテンプレートの後半で、Olegが述べたように呼び出すことができます。

例:

<#

 string parameterTest = Host.ResolveParameterValue(null, null, "someKey");
 WriteLine(parameterTest);

#>

テンプレートジェネレータを呼び出すと、次のようになります。

"C:\Program Files\Common Files\Microsoft Shared\TextTemplating\1.2\TextTransform.exe" -a !!someKey!someValue

生成後は生成されたファイルにある必要があります:'someValue'

于 2009-09-16T11:12:10.357 に答える
1

-a 引数は、次の形式の値を受け入れます。

<ProcessorName>!<DirectiveID>!<ParameterName>

これらは、テンプレート コードでパラメーター値を取得するために呼び出す必要があるITextTemplatingEngineHost.ResolveParameterValueメソッドのパラメーターでもあります。

于 2009-09-08T11:41:23.757 に答える