Freigeben über


Codegenerierung und T4-Textvorlagen

In Visual Studio besteht eine T4-Textvorlage aus einer Mischung aus Textblöcken und steuernder Logik, über die eine Textdatei generiert werden kann. Die Steuerungslogik wird in Form von Programmcodefragmenten in Visual C# oder Visual Basic geschrieben. Sie können C#-Version 6.0-Features in T4-Vorlagendirektiven verwenden. Die generierte Datei kann Text enthalten, z. B. eine Webseite, eine Ressourcendatei oder Programmquellcode in einer beliebigen Sprache.

Für eine domänenspezifische Sprache (DSL), die zum Ausdrücken von Anweisungen in einem bestimmten Problembereich konzipiert ist, erhalten Sie Informationen unter Generieren von Code für eine domänenspezifische Sprache.

Es gibt zwei Arten von T4-Textvorlagen: Laufzeit und Entwurfszeit.

T4-Textvorlagen zur Laufzeit

Laufzeitvorlagen werden auch als „vorverarbeitete“ Vorlagen bezeichnet. Sie führen die Vorlagen in Ihrer Anwendung aus, um Textzeichenfolgen als Teil der Ausgabe zu erzeugen. Sie können beispielsweise eine Vorlage erstellen, um eine HTML-Seite zu definieren:

<html><body>
 The date and time now is: <#= DateTime.Now #>
</body></html>

Sie sehen, dass die Vorlage der generierten Ausgabe ähnelt. Die Ähnlichkeit der Vorlage mit der resultierenden Ausgabe hilft Ihnen dabei, Fehler zu vermeiden, wenn Sie die Vorlage ändern möchten.

Außerdem enthält die Vorlage Programmcodefragmente. Sie können diese Fragmente verwenden, um Abschnitte des Texts zu wiederholen, bedingte Abschnitte zu erstellen und Daten aus Ihrer Anwendung anzuzeigen.

Um die Ausgabe zu generieren, ruft die Anwendung eine Funktion auf, die über die Vorlage generiert wurde. Beispiel:

string webResponseText = new MyTemplate().TransformText();

Ihre Anwendung kann auf einem Computer ausgeführt werden, auf dem Visual Studio nicht installiert ist.

Um eine Laufzeitvorlage zu erstellen, fügen Sie Ihrem Projekt eine Vorverarbeitete Textvorlage -Datei hinzu. Sie können auch eine Nur-Text-Datei hinzufügen und deren Eigenschaft Benutzerdefiniertes Tool auf TextTemplatingFilePreprocessor festlegen.

Weitere Informationen finden Sie unter Laufzeittextgenerierung mithilfe von T4-Textvorlagen. Weitere Informationen zur Syntax von Vorlagen finden Sie unter Schreiben einer T4-Textvorlage.

T4-Entwurfszeit-Textvorlagen

T4-Entwurfszeit-Textvorlagenvorlagen definieren einen Teil des Quellcodes sowie andere Ressourcen Ihrer Anwendung. Üblicherweise verwenden Sie mehrere Vorlagen, über die die Daten aus einer einzelnen Eingabedatei oder Datenbank gelesen und einige Ihrer .cs-, .vb- oder sonstigen Quelldateien generiert werden. Jede Vorlage generiert eine Datei und wird in Visual Studio oder MSBuild erstellt.

Ihre Eingabedaten könnten beispielsweise Konfigurationsdaten in einer XML-Datei sein. Immer dann, wenn Sie die XML-Datei während der Entwicklung bearbeitet haben, werden mit den Textvorlagen Teile des Anwendungscodes neu generiert. Eine der Vorlagen könnte so wie im folgenden Beispiel aussehen:

<#@ output extension=".cs" #>
<#@ assembly name="System.Xml" #>
<#
 System.Xml.XmlDocument configurationData = ...; // Read a data file here.
#>
namespace Fabrikam.<#= configurationData.SelectSingleNode("jobName").Value #>
{
  ... // More code here.
}

Abhängig von den Werten in der XML-Datei hat die generierte .cs-Datei in etwa folgendes Format:

namespace Fabrikam.FirstJob
{
  ... // More code here.
}

Ein weiteres Beispiel: Die Eingabe könnte ein Diagramm des Workflows in einer Geschäftsaktivität sein. Wenn die Benutzer ihren Geschäftsworkflow ändern oder wenn Sie beginnen, mit neuen Benutzern zu arbeiten, die einen anderen Workflow haben, kann der Code problemlos neu generiert werden, damit er dem neuen Modell entspricht.

Hinweis

Der Begriff Modell wird manchmal verwendet, um Daten zu beschreiben, die von mindestens einer Vorlage gelesen werden. Das Modell kann in einem beliebigen Format in einer beliebigen Art von Datei oder Datenbank vorliegen. Es muss weder ein UML-Modell noch ein domänenspezifisches Sprachmodell sein. Der Begriff „Modell“ gibt lediglich an, dass die Daten hinsichtlich der Geschäftskonzepte definiert werden können, statt so auszusehen wie Code. Entwurfszeitvorlagen sind schneller und zuverlässiger, wenn Sie bei sich ändernden Anforderungen die Konfiguration ändern. In der Regel ist die Eingabe hinsichtlich Geschäftsanforderungen definiert (wie im Workflowbeispiel). Entwurfszeitvorlagen sind nützliche Tools in dynamischen Entwicklungsprozessen.

Um eine Entwurfszeitvorlage zu erstellen, fügen Sie Ihrem Projekt eine Textvorlage -Datei hinzu. Alternativ können Sie eine Nur-Text-Datei hinzufügen und deren Eigenschaft Benutzerdefiniertes Tool auf TextTemplatingFileGeneratorfestlegen.

Weitere Informationen finden Sie unter Generieren von Code zur Entwurfszeit mithilfe von T4-Textvorlagen. Weitere Informationen zur Syntax von Vorlagen finden Sie unter Schreiben einer T4-Textvorlage.

Die Transformationsfunktion für Textvorlagen wird als T4bezeichnet.

Weitere Informationen