niedziela, 5 sierpnia 2012

[C#|Visual Studio] Generowanie kodu za pomocą plików T4

Pliki T4 (Text Template Transformation Toolkit) służą do generacji plików o dowolnym rozszerzeniu z bloków tekstu połączonych z blokami kodu pisanych w C# lub Visual Basic. Obowiązuje pewna prosta do opanowania składnia umożliwiająca oddzielenie kodu od tekstu oraz obliczanie wartości które chcemy wstawić w danym miejscu. Transformacja pliku następuje w momencie, gdy zapiszemy plik o rozszerzeniu .tt.

Aby dodać nowy plik, wybieramy Add...New Item... lub ctrl + shift + A. Z listy wybieramy Text Template:


Wygenerowane zostaną dwa pliki : .tt i .txt. Rozszerzenie możemy zmienić w nagłówku pliku .tt, podobnie jak język, w którym chcemy pisać. Kod od tekstu i ustawień oddziela się różnymi rodzajami tagów:
Tag otwierający ustawienia : <#@
Tag otwierający kod : <#
Zwykły tekst nie jest zamykany w żadnych tagach.

Poniższy przykład pokazuje możliwości szablonów T4.
Załóżmy, że chcemy na podstawie pewnej tablicy wygenerować klasy z konstruktorami. Poniższy kod pokazuje, jak to uczynić.


<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>

namespace MyNamespace 
{

<#  var Countries = new string[]{"Poland","England","Ukraine"};
 foreach (var country in Countries)
    {#>
 public class <#=country#>
 {
  public <#=country#>()
  {
  }
 }
                 
<#}#>
}

W wyniku otrzymamy plik .cs o następującej treści :

namespace MyNamespace 
{

 public class Poland
 {
  public Poland()
  {
  }
 }
                 
 public class England
 {
  public England()
  {
  }
 }
                 
 public class Ukraine
 {
  public Ukraine()
  {
  }
 }
                 
}

Brak komentarzy:

Prześlij komentarz