Delen via


Tekstsjablonen verwerken met behulp van een aangepaste host

Het transformatieproces van de tekstsjabloon neemt een tekstbestand als invoer en produceert een tekstbestand als uitvoer. U kunt de teksttransformatie-engine aanroepen vanuit een Visual Studio-extensie of vanuit een zelfstandige toepassing die wordt uitgevoerd op een computer waarop Visual Studio is geïnstalleerd. U moet echter een teksttemplatering host opgeven. Deze klasse verbindt de sjabloon met de omgeving, het zoeken naar resources zoals assembly's en het opnemen van bestanden en het verwerken van de uitvoer en foutberichten.

Aanbeveling

Als u een pakket of extensie schrijft dat in Visual Studio wordt uitgevoerd, overweeg dan de tekstsjablonering-service te gebruiken in plaats van uw eigen host te schrijven. Zie Teksttransformatie aanroepen in een VS-extensie voor meer informatie.

Opmerking

Het wordt afgeraden om tekstsjabloontransformaties te gebruiken in servertoepassingen. Het wordt afgeraden om tekstsjabloontransformaties te gebruiken, behalve in één thread. Dit komt doordat de sjabloonengine voor tekst één AppDomain opnieuw gebruikt om sjablonen te vertalen, compileren en uitvoeren. De vertaalde code is niet ontworpen om thread-safe te zijn. De engine is ontworpen om bestanden serieel te verwerken, omdat ze zich in een Visual Studio-project bevinden tijdens het ontwerp.

Voor runtimetoepassingen kunt u gebruikmaken van vooraf verwerkte tekstsjablonen: zie Run-Time Tekstgeneratie met T4-tekstsjablonen.

Als uw toepassing gebruikmaakt van een set sjablonen die tijdens het compileren zijn opgelost, is het eenvoudiger om vooraf verwerkte tekstsjablonen te gebruiken. U kunt deze methode ook gebruiken als uw toepassing wordt uitgevoerd op een computer waarop Visual Studio niet is geïnstalleerd. Zie Run-Time Tekstgeneratie met T4-tekstsjablonen voor meer informatie.

Een tekstsjabloon uitvoeren in uw toepassing

Als u een tekstsjabloon wilt uitvoeren, roept u de ProcessTemplate-methode aan van Microsoft.VisualStudio.TextTemplating.Engine:

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

Uw toepassing moet de sjabloon zoeken en opgeven en moet de uitvoer verwerken.

In de host parameter moet u een klasse opgeven waarmee ITextTemplatingEngineHost wordt geïmplementeerd. Dit wordt aangeroepen door de engine.

De host moet fouten kunnen vastleggen, verwijzingen naar assembly's kunnen oplossen en bestanden bevatten, een toepassingsdomein opgeven waarin de sjabloon kan worden uitgevoerd en de juiste processor aanroepen voor elke instructie.

Microsoft.VisualStudio.TextTemplating.Engine is gedefinieerd in Microsoft.VisualStudio.TextTemplating.*.0.dllen ITextTemplatingEngineHost is gedefinieerd in Microsoft.VisualStudio.TextTemplating.Interfaces.*.0.dll.

In deze sectie

Walkthrough: Als u een host voor aangepaste tekstsjablonen maakt, ziet u hoe u een aangepaste tekstsjabloonhost maakt die de functionaliteit van de tekstsjabloon beschikbaar maakt buiten Visual Studio.

Reference

ITextTemplatingEngineHost