Compartilhar via


Personalizar a transformação de texto T4

Modelos de texto são um recurso do Visual Studio que permite gerar código de programa ou outros arquivos de texto por meio de um processo de transformação. Com o SDK do Visual Studio, você pode estender o processo de transformação de modelo padrão personalizando o processador de diretiva de modelo de texto ou o host de modelo de texto.

Nesta seção

O processo de transformação modelo de texto: Descreve como funciona a transformação de texto e explica a função do host de modelo e dos processadores de diretiva.

Criando processadores de diretiva de modelo de texto T4 personalizados: O processador de diretiva lida com diretivas em seu modelo, como <#@template#>. Ele é executado durante a compilação do modelo e pode carregar assemblies e outros recursos. Ele também pode inserir código que carregará recursos em tempo de execução. Ao definir seu próprio processador de diretiva, você pode reduzir a complexidade de seus modelos.

Invocando a transformação de texto em uma extensão do VS: Se você estiver escrevendo uma extensão do Visual Studio, como um comando de menu ou manipulador de eventos, sua extensão poderá usar o Serviço de Modelagem de Texto para transformar qualquer modelo de texto. Você pode passar dados de parâmetro para o modelo usando o objeto Session e obter os valores de dentro do modelo usando a diretiva <#@parameter#>.

Processando modelos de texto usando um host personalizado: Quando o código do modelo de texto é executado, o host fornece acesso a arquivos externos e ao estado do aplicativo. Por exemplo, o host que executa transformações de texto no Visual Studio pode fornecer acesso a Gerenciador de Soluções. Ele também exibe erros na janela de mensagem de erro. Se você quiser executar transformações de texto em um contexto diferente, poderá definir seu próprio host que fornece acesso aos serviços disponíveis nesse contexto.

Se você estiver escrevendo uma extensão do Visual Studio, considere usar o serviço de transformação de texto existente em vez de escrever seu próprio host. Para obter mais informações, confira Invocar a transformação de texto em uma extensão do VS.