O processo de transformação do modelo de texto
O processo de transformação do modelo de texto leva a um arquivo de modelo de texto como entrada e gera um novo arquivo de texto, como a saída.Por exemplo, você pode usar modelos de texto para gerar o código de Visual Basic ou C#, ou você pode gerar um relatório em HTML.
Três componentes participam desse processo: o mecanismo, o host e os processadores de diretriz.O mecanismo controla o processo; ele interage com o host e o processador de diretriz para produzir o arquivo de saída.O host fornece qualquer interação com o ambiente, como, por exemplo, a localização de arquivos e assemblies.Processador de diretriz adiciona funcionalidade, como a leitura de dados de um arquivo XML ou um banco de dados.
O processo de transformação do modelo de texto é executado em duas etapas.Primeiro, o mecanismo cria uma classe temporária, o que é conhecida como a classe de transformação gerada.Essa classe contém o código que é gerado pelas diretivas e blocos de controle.Depois disso, o mecanismo compila e executa a classe de transformação gerado para produzir o arquivo de saída.
Componentes
Componente |
Descrição |
Personalizável (Sim/não) |
---|---|---|
Mecanismo |
O componente de mecanismo controla o processo de transformação do modelo de texto |
Não. |
Host |
O host é a interface entre o mecanismo e o ambiente do usuário.Visual Studioé um host do processo de transformação de texto. |
Sim.Você pode escrever um host personalizado. |
Processadores de diretriz |
Processadores de diretriz são classes que lidam com as diretivas nos modelos de texto.Você pode usar as diretivas para fornecer dados para um modelo de texto de uma fonte de entrada. |
Sim.Você pode escrever os processadores de diretriz personalizados |
O mecanismo
O mecanismo recebe o modelo como uma seqüência de caracteres de host, que lida com todos os arquivos que são usados no processo de transformação.O mecanismo, em seguida, pede que o host para localizar qualquer processadores de diretriz personalizadas e outros aspectos do ambiente.O mecanismo, em seguida, compila e executa a classe de transformação gerada.O mecanismo retorna o texto gerado ao host, que normalmente salva o texto em um arquivo.
O Host
O host é responsável por qualquer coisa que se relaciona com o ambiente fora do processo de transformação, incluindo o seguinte:
Localizando texto e arquivos binários solicitados pelo mecanismo de ou de um processador de diretriz.O host pode pesquisar diretórios e o cache global de assemblies localizar assemblies.O host pode localizar o código de processador de diretriz personalizada para o mecanismo.O host pode também localizar e ler arquivos de texto e retornar seu conteúdo como seqüências de caracteres.
Fornecendo listas de conjuntos de módulos padrão e namespaces que são usados pelo mecanismo para criar a classe de transformação gerada.
Fornecendo o domínio de aplicativo é usado quando o mecanismo compila e executa a classe de transformação gerada.Um domínio de aplicativo separado é usado para proteger o aplicativo host de erros no código de modelo.
Gravar o arquivo de saída gerada.
Definindo a extensão padrão para o arquivo de saída gerada.
Tratamento de erros de transformação do modelo de texto.Por exemplo, o host pode exibir os erros na interface do usuário ou gravá-los em um arquivo.(Em Visual Studio, os erros são exibidos na janela da mensagem de erro.)
Se um usuário tiver chamado a uma diretiva sem fornecer um valor, fornecendo um valor de parâmetro necessário.Processador de diretriz pode especificar o nome da diretiva e o parâmetro e peça ao coordenador para fornecer um valor padrão caso haja algum.
As diretivas e os processadores de diretiva
Uma diretiva é um comando no seu modelo de texto.Ele fornece parâmetros para o processo de geração.Normalmente, as diretivas definem a origem e o tipo de modelo ou outras entradas e a extensão de nome de arquivo do arquivo de saída.
Um processador de diretriz pode processar um ou mais diretivas.Quando você transforma um modelo, você deve ter instalado um processador de diretriz capaz de lidar com as diretivas no seu modelo.
As diretivas funcionam, adicionando o código na classe transformation gerado.Você chamar as diretivas de um modelo de texto e os processos de mecanismo todas as chamadas de diretivas quando ele cria a classe de transformação gerada.Depois de chamar uma diretiva com êxito, o restante do código que você escreve em seu modelo de texto pode contar com a funcionalidade que a diretiva oferece.Por exemplo, você pode fazer a chamada seguinte para o import diretiva no modelo:
<#@ import namespace="System.Text" #>
Processador de diretriz padrão converte isso para um using declaração na classe transformation gerado.Você pode usar o StringBuilder classe no restante do seu código de modelo sem qualificá-la como System.Text.StringBuilder.