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
Zugehöriger Inhalt
- Der Transformationsprozess für Textvorlagen beschreibt, wie die Texttransformation funktioniert und welche Teile Sie anpassen können.
- Erstellen benutzerdefinierter T4-Textvorlagen-Anweisungsprozessoren bietet eine Übersicht über Textvorlagen-Anweisungsprozessoren.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für