Erhalten Argument Wert von TextTransform.exe in die Vorlage
-
10-07-2019 - |
Frage
Ich kann einiges Beispiel gefunden, wie kann ich Argument -a verwenden, wenn ich TextTransform.exe verwenden, um Code von Vorlagen zu erzeugen. In MSDN wird folgende Beschreibung Argument -a:
"Gibt einen Parameter, der eine Richtlinie Prozessor kann als eine Abfrage Name / Wert-Paar. die Richtlinie Prozessor und Identifikator ist optional. Auf diese Weise können Parameter spezifiziert werden für jede Richtlinie Prozessor oder eine beliebige Instanz einer bestimmten Richtlinie Prozessor. "
Ich brauche eine Reihe von Argumenten, wie Verbindungszeichenfolge und so weiter in meiner Vorlage. Meine Idee war, einen Pfad zu Konfigurationsdatei mit Hilfe des Arguments -a zu erhalten.
Viele Grüße Anton Kalcik
UPDATE: Um klar genug sein, ich Parameter direkt will in Vorlage lesen
.Lösung
Textvorlagen-Transformation Toolkit (T4) ist von Microsoft nicht sehr gut unterstützt. Nur einige Beispiele. Wenn Sie mehr wissen möchten, gehen Sie zu Olegs Sychs Blog . T4 ist hier sehr tief erklärt.
Nach den Stunden zu versuchen, Parameter von TextTransform.exe in meiner Vorlage zu bekommen ich eine Lösung gefunden:
Fügen Sie hostspecific="true"
Attribut Element template
wie folgt:
<#@ template language="C#v3.5" hostspecific="true"#>
Später Vorlage können Sie anrufen ResolveParameterValue
als Oleg erwähnt.
Beispiel:
<#
string parameterTest = Host.ResolveParameterValue(null, null, "someKey");
WriteLine(parameterTest);
#>
Sie rufen Template-Generator so:
"C:\Program Files\Common Files\Microsoft Shared\TextTemplating\1.2\TextTransform.exe" -a !!someKey!someValue
Nach der Erzeugung sollte in generierten Datei sein: 'somevalue'
Andere Tipps
Das Argument -a akzeptiert Werte in folgendem Format:
<ProcessorName>!<DirectiveID>!<ParameterName>
Dies sind auch die Parameter der ITextTemplatingEngineHost .ResolveParameterValue Methode, die Sie aufrufen, um benötigen Parameterwert in Template-Code zu erhalten.