Freigeben über


Verarbeiten von Textvorlagen mithilfe eines benutzerdefinierten Hosts

Beim Textvorlagen-Transformationsprozess wird aus einer Textvorlagendatei (Eingabe) eine Textdatei (Ausgabe) erzeugt. Sie können das Texttransformationsmodul 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 von Texttransformation in einer VS-Erweiterung.

Tipp

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

Verwenden Sie für Laufzeitanwendungen ggf. vorverarbeitete Textvorlagen (siehe Generieren von Text zur Laufzeit mithilfe von vorverarbeiteten 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 Generieren von Text zur Laufzeit mithilfe von vorverarbeiteten T4-Textvorlagen.

Ausführen einer Textvorlage in der 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 vom Modul 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 ist in Microsoft.VisualStudio.TextTemplating.10.0.dll definiert, und ITextTemplatingEngineHost ist in Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll definiert.

In diesem Abschnitt

Verweis

ITextTemplatingEngineHost

Verwandte Abschnitte

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Oktober 2010

Ausführlicher Hinweis zu Threadsicherheit

Kundenfeedback.