Condividi tramite


Elaborare modelli di testo usando un host personalizzato

Il processo di trasformazione modello di testo accetta un file modello di testo come input e produce un file di testo come output. È possibile chiamare il motore di trasformazione del testo da un'estensione di Visual Studio o da un'applicazione autonoma in esecuzione in un computer in cui è installato Visual Studio. Tuttavia, è necessario fornire un host di modellazione del testo. Questa classe connette il modello all'ambiente, trovando risorse come assembly e include file e gestendo i messaggi di output e di errore.

Suggerimento

Se si scrive un pacchetto o un'estensione che verrà eseguita all'interno di Visual Studio, è consigliabile usare il servizio di creazione modelli di testo, anziché scrivere il proprio host. Per altre informazioni, vedere Richiamo della trasformazione del testo in un'estensione di Visual Studio.

Annotazioni

Non è consigliabile usare trasformazioni di modelli di testo nelle applicazioni server. Non è consigliabile usare trasformazioni di modelli di testo tranne in un singolo thread. Questo perché il motore di creazione di modelli di testo usa di nuovo un singolo AppDomain per tradurre, compilare ed eseguire modelli. Il codice tradotto non è progettato per essere thread-safe. Il motore è progettato per elaborare i file in modo seriale, perché si trovano in un progetto di Visual Studio in fase di progettazione.

Per le applicazioni in fase di esecuzione, è consigliabile usare modelli di testo pre-elaborati: vedere Run-Time Generazione di testo con modelli di testo T4.

Se l'applicazione usa un set di modelli fissi in fase di compilazione, è più facile usare modelli di testo pre-elaborati. È anche possibile usare questo approccio se l'applicazione verrà eseguita in un computer in cui Visual Studio non è installato. Per ulteriori informazioni, vedere Generazione di testo in fase di esecuzione con modelli di testo T4.

Eseguire un modello di testo nell'applicazione

Per eseguire un modello di testo, chiamare il metodo ProcessTemplate di Microsoft.VisualStudio.TextTemplating.Engine:

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

L'applicazione deve trovare e fornire il modello e deve gestire l'output.

host Nel parametro è necessario fornire una classe che implementa ITextTemplatingEngineHost. Questo viene richiamato dal motore.

L'host deve essere in grado di registrare gli errori, risolvere i riferimenti all'assembly e includere i file, fornire un dominio applicazione in cui il modello può essere eseguito e chiamare il processore appropriato per ogni direttiva.

Microsoft.VisualStudio.TextTemplating.Engine è definito in Microsoft.VisualStudio.TextTemplating.*.0.dlle ITextTemplatingEngineHost è definito in Microsoft.VisualStudio.TextTemplating.Interfaces.*.0.dll.

In questa sezione

Procedura dettagliata: creazione di un host modello di testo personalizzato illustra come creare un host modello di testo personalizzato che rende disponibile la funzionalità del modello di testo all'esterno di Visual Studio.

Reference

ITextTemplatingEngineHost