Modelos de texto de processamento por meio de um Host personalizado

O transformação do modelo de texto processo leva uma o modelo de texto arquivo como entrada e produz um texto de arquivo como a saída. Você pode chamar o mecanismo de transformação de texto de um Visual Studio extensão, ou a partir de um aplicativo autônomo executado em uma máquina na qual Visual Studio está instalado. No entanto, você deve fornecer um o host de modelagem de texto. Essa classe conecta o modelo para o ambiente, localizando recursos como, por exemplo, assemblies e incluir arquivos e lidar com as mensagens de erro e de saída.

Dica

Se você estiver escrevendo um pacote ou a extensão que será executado dentro de Visual Studio, considere usar o serviço de modelagem de texto, em vez de escrever seu próprio host. Para obter mais informações, consulte Invocar a transformação de texto em uma extensão do VS.

ObservaçãoObservação

Não recomendamos o uso de transformações de modelo de texto em aplicativos de servidor. Não recomendamos o uso de transformações de modelo de texto, exceto em um único segmento. Isso ocorre porque a mecanismo de modelagem de texto reutiliza um único AppDomain para traduzir, compilar e executar modelos. O código traduzido não foi projetado para ser thread-safe. O mecanismo é projetado para processar arquivos serialmente, como eles estão em um Visual Studio o projeto em tempo de design.

Para aplicativos de tempo de execução, considere o uso de modelos de texto pré-processado: see Geração de texto de tempo de execução usando os modelos de texto T4.

Se o seu aplicativo usa um conjunto de modelos que são corrigidos em tempo de compilação, é mais fácil de usar os modelos de texto pré-processado. Você também pode usar essa abordagem se seu aplicativo será executado em uma máquina na qual Visual Studio não está instalado. Para obter mais informações, consulte Geração de texto de tempo de execução usando os modelos de texto T4.

A execução de um modelo de texto em seu aplicativo.

Para executar um modelo de texto, você chamar o método ProcessTemplate do Microsoft.VisualStudio.TextTemplating.Engine:

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

Seu aplicativo deve localizar e fornecer o modelo e precisa lidar com a saída.

No host parâmetro, você deve fornecer uma classe que implementa ITextTemplatingEngineHost. Isso é chamado de volta pelo mecanismo.

O host deve ser capaz de registrar erros, resolver referências de assembly e incluir arquivos, fornecer um domínio de aplicativo no qual o modelo pode executar e chame o processador apropriado para cada diretiva.

Microsoft.VisualStudio.TextTemplating.Engineé definido em Microsoft.VisualStudio.TextTemplating.10.0.dll, e ITextTemplatingEngineHost é definido em Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll.

Nesta seção

Referência

ITextTemplatingEngineHost

Seções relacionadas

Histórico de alterações

Date

History

Motivo

Outubro de 2010

Nota elaborated sobre segurança do thread

Comentários do cliente.