Compartilhar via


Modelos de texto T4 e de geração de código

Na Visual Studio, um modelo de texto T4 é uma mistura de blocos de texto e a lógica de controle que pode gerar um arquivo de texto.A lógica de controle é escrita como fragmentos de código de programa em Visual C# ou Visual Basic. O arquivo gerado pode ser o texto de qualquer tipo, como, por exemplo, uma página da Web, ou um arquivo de recurso ou o código de origem do programa em qualquer idioma.

Há dois tipos de modelos de texto T4:

  • Modelos de texto T4 de tempo de execução ('pré-processado' modelos) é executado em seu aplicativo para produzir seqüências de caracteres de texto, geralmente como parte de sua saída.
    Por exemplo, você poderia criar um modelo para definir uma página HTML:

    <html><body>
     The date and time now is: <#= DateTime.Now #>
    </body></html>
    

    Observe que o modelo se assemelha a saída gerada.A semelhança do modelo para a saída resultante ajuda a evitar erros quando você desejar alterá-la.

    Além disso, o modelo contém fragmentos de código de programa.Você pode usar esses fragmentos para repetir a seções de texto, para tornar as seções condicionais e para mostrar dados de seu aplicativo.

    Para gerar a saída, o aplicativo chama uma função que é gerada pelo modelo.Por exemplo:

    string webResponseText = new MyTemplate().TransformText();
    

    Seu aplicativo pode ser executado em um computador que não tem Visual Studio instalado.

    Para criar um modelo de tempo de execução, adicione um modelo de texto de pré-processado o arquivo ao seu projeto.Como alternativa, você pode adicionar um arquivo de texto sem formatação e definir suas Ferramenta personalizada propriedade para TextTemplatingFilePreprocessor.

    Para obter mais informações, consulte Geração de texto de tempo de execução com modelos de texto T4.Para obter mais informações sobre a sintaxe de modelos, consulte Escrever um modelo de texto T4.

  • Modelos de texto em tempo de design T4 são executados na Visual Studio para definir a parte do código-fonte e outros recursos do seu aplicativo.
    Normalmente você usaria vários modelos que ler os dados em um único arquivo de entrada ou de um banco de dados e gerar alguns dos seus .cs, .vb, ou outros arquivos de origem.Cada modelo gera um arquivo.Eles são executados dentro de Visual Studio ou MSBuild.

    Por exemplo, os dados de entrada podem ser um arquivo XML de dados de configuração.Sempre que você edite o arquivo XML durante o desenvolvimento, os modelos de texto seriam regenerar a parte do código do aplicativo.Um dos modelos poderia se parecer com o exemplo a seguir:

    <#@ output extension=".txt" #>
    <#@ assembly name="System.Xml" #>
    <#
     System.Xml.XmlDocument configurationData = ...; // Read a data file here.
    #>
    namespace Fabrikam.<#= configurationData.SelectSingleNode("jobName").Value #>
    {
      ... // More code here. 
    }
    

    Depende dos valores no arquivo XML gerado .cs arquivo seria ter o seguinte aspecto:

    namespace Fabrikam.FirstJob
    {
      ... // More code here. 
    }
    

    Como outro exemplo, a entrada pode ser um diagrama de fluxo de trabalho em uma atividade de negócios.Quando os usuários alterar o seu fluxo de trabalho de negócios ou quando iniciar o trabalho com novos usuários que têm um fluxo de trabalho diferente, é fácil gerar novamente o código para ajustar o novo modelo.

    Os modelos de design-time torná-lo mais rápido e confiável para alterar a configuração quando as necessidades mudam.Normalmente, a entrada é definida em termos de necessidades dos negócios, como mostra o exemplo de fluxo de trabalho.Isso torna mais fácil discutir as alterações com os usuários.Os modelos de tempo de design, portanto, são uma ferramenta útil em um processo de desenvolvimento ágil.

    Para criar um modelo de tempo de design, adicione um Modelo de texto o arquivo ao seu projeto.Como alternativa, você pode adicionar um arquivo de texto sem formatação e definir suas Ferramenta personalizada propriedade para TextTemplatingFileGenerator.

    Para obter mais informações, consulte Geração de código de tempo de design usando modelos de texto T4.Para obter mais informações sobre a sintaxe de modelos, consulte Escrever um modelo de texto T4.

ObservaçãoObservação

O termo modelo às vezes é usado para descrever dados lidos por um ou mais modelos.O modelo pode estar em qualquer formato, em qualquer tipo de arquivo ou banco de dados.Ele não precisa ser um modelo de linguagem específica de domínio ou de um modelo UML. 'Modelo ' apenas indica que os dados podem ser definidos em termos dos conceitos de negócios, em vez de parecidos com o código.

O recurso de transformação do modelo de texto chamado T4.

Nesta seção

Consulte também

Conceitos

Como: gerar arquivos a partir de um modelo UML

Outros recursos

Gerando código a partir de uma linguagem específica de domínio