Freigeben über


Verarbeiten von Textvorlagen mithilfe eines benutzerdefinierten Hosts

Beim Textvorlagen-Transformationsprozess wird aus einer Textvorlagendatei (Eingabe) eine Textdatei (Ausgabe) erzeugt. Sie können die Texttransformations-Engine in einer Visual Studio-Erweiterung oder einer eigenständigen Anwendung aufrufen, die auf einem Computer mit Visual Studio ausgeführt wird. Sie müssen jedoch einen Textvorlagenhost bereitstellen. Diese Klasse verbindet die Vorlage mit der Umgebung. Sie sucht nach Ressourcen wie Assemblys und Includedateien und verarbeitet die Ausgabe und Fehlermeldungen.

Tipp

Wenn Sie ein Paket oder eine Erweiterung schreiben, die in Visual Studio ausgeführt wird, verwenden Sie ggf. den Textvorlagendienst, anstatt einen eigenen Host zu schreiben. Weitere Informationen finden Sie unter Aufrufen der Texttransformation in einer Visual Studio-Erweiterung.

Hinweis

Von der Verwendung von Textvorlagentransformationen in Serveranwendungen wird abgeraten. Textvorlagentransformationen sollten nur in einem einzelnen Thread verwendet werden. Dies liegt daran, dass die Textvorlagen-Engine eine einzelne AppDomain wieder verwendet, um Vorlagen zu übersetzen, zu kompilieren und auszuführen. Der übersetzte Code ist nicht auf Threadsicherheit hin konzipiert. Die Engine ist für die serielle Verarbeitung von Dateien vorgesehen, so wie dies zur Entwurfszeit in einem Visual Studio-Projekt der Fall ist.

Für Laufzeitanwendungen sollten Sie die Verwendung vorverarbeiteter Textvorlagen in Erwägung ziehen. Weitere Informationen finden Sie unter Laufzeittextgenerierung mit T4-Textvorlagen.

Wenn in der Anwendung zur Kompilierzeit korrigierte Vorlagen verwendet werden, ist es einfacher, vorverarbeitete Textvorlagen zu verwenden. Sie können diesen Ansatz auch verwenden, wenn die Anwendung auf einem Computer ausgeführt wird, auf dem Visual Studio nicht installiert ist. Weitere Informationen finden Sie unter Laufzeittextgenerierung mithilfe von T4-Textvorlagen.

Ausführen einer Textvorlage in Ihrer Anwendung

Zum Ausführen einer Textvorlage rufen Sie die ProcessTemplate-Methode von Microsoft.VisualStudio.TextTemplating.Engine auf:

using Microsoft.VisualStudio.TextTemplating;
...
Engine engine = new Engine();
string output = engine.ProcessTemplate(templateString, host);

Die Anwendung muss die Vorlage finden und bereitstellen und die Ausgabe verarbeiten.

Im host-Parameter muss eine Klasse angegeben werden, die ITextTemplatingEngineHost implementiert. Diese Methode wird von der Engine aufgerufen.

Der Host muss in der Lage sein, Fehler zu protokollieren und Verweise auf Assemblys und Includedateien aufzulösen, er muss eine Anwendungsdomäne bereitstellen, in der die Vorlage ausgeführt werden kann, und den entsprechenden Prozessor für jede Direktive aufrufen.

Microsoft.VisualStudio.TextTemplating.Engine wird in Microsoft.VisualStudio.TextTemplating.*.0.dll definiert und ITextTemplatingEngineHost in Microsoft.VisualStudio.TextTemplating.Interfaces.*.0.dll.

In diesem Abschnitt

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Textvorlagenhosts: Zeigt, wie Sie einen benutzerdefinierten Textvorlagenhost erstellen, der die Textvorlagenfunktionalität außerhalb von Visual Studio verfügbar macht.

Verweis

ITextTemplatingEngineHost