Condividi tramite


Elaborare modelli di testo tramite 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 creazione modelli 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.

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.

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 è 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 Generazione di testo in fase di esecuzione con modelli di testo T4.

Se l'applicazione utilizza un set di modelli corretti in fase di compilazione, sarà più facile utilizzare 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 altre 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. 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.*.0.dll e 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.

Riferimento

ITextTemplatingEngineHost