Condividi tramite


Elaborazione di modelli di testo tramite un host personalizzato

Nel processo di trasformazione di un modello di testo viene preso un file modello di testo come input e viene generato un file di testo come output. È possibile chiamare il motore di trasformazione del testo da un'estensione Visual Studio o da un'applicazione autonoma in esecuzione in un computer nel quale è installato Visual Studio. Tuttavia, è necessario fornire un host del modello di testo. Questa classe connette il modello all'ambiente, trovando risorse quali gli assembly e i file di inclusione e gestendo l'output e i messaggi di errore.

SuggerimentoSuggerimento

Se si scrive un pacchetto o un'estensione che verrà eseguita in Visual Studio, anziché scrivere il proprio host, è consigliabile utilizzare il servizio del modello di testo. Per ulteriori informazioni, vedere Richiamo della trasformazione del testo in un'estensione VS.

Nota

Si sconsiglia di utilizzare le trasformazioni del modello di testo nelle applicazioni server. Si sconsiglia di utilizzare le trasformazioni del modello di testo eccetto in un thread singolo. Questo perché il motore del modello di testo riutilizza un solo AppDomain per tradurre, compilare ed eseguire i modelli. Il codice tradotto non è progettato per essere thread-safe. Il motore viene progettato per elaborare file in serie, come sono in fase di progettazione in un progetto di Visual Studio.

Per le applicazioni della fase di esecuzione, si consiglia di utilizzare modelli di testo pre-elaborati: vedere Generazione di testo in fase di esecuzione tramite modelli di testo T4 pre-elaborati.

Se l'applicazione utilizza un set di modelli corretti in fase di compilazione, sarà più facile utilizzare modelli di testo pre-elaborati. È possibile utilizzare questo approccio anche se l'applicazione sarà in esecuzione in un computer nel quale non è installato Visual Studio. Per ulteriori informazioni, vedere Generazione di testo in fase di esecuzione tramite modelli di testo T4 pre-elaborati.

Esecuzione di 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.

Nel parametro host, è necessario fornire una classe che implementa ITextTemplatingEngineHost. Questa viene richiamata dal motore.

L'host deve essere in grado di registrare errori, risolvere riferimenti agli assembly e ai file di inclusione, fornire un dominio dell'applicazione nel quale il modello possa essere eseguito e possa chiamare il processore adatto per ciascuna direttiva.

Microsoft.VisualStudio.TextTemplating.Engine è definito in Microsoft.VisualStudio.TextTemplating.10.0.dll e ITextTemplatingEngineHost è definito in Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll.

Argomenti della sezione

Riferimento

ITextTemplatingEngineHost

Sezioni correlate

Cronologia delle modifiche

Data

Cronologia

Motivo

Ottobre 2010

Elaborata nota su thread safety

Commenti e suggerimenti dei clienti.