T4 Direktiva začlenění
V šabloně text v Visual Studio, může obsahovat text z jiného souboru pomocí <#@include#> směrnice.Můžete umístit include směrnic kdekoli v textu šablony před první třídy funkci blokování <#+ ... #>.Zahrnuté soubory mohou také obsahovat include směrnic a jiných směrnic.Umožňuje sdílet text šablony kódu a často mezi šablonami.
Pomocí direktiv
<#@ include file="filePath" #>
filePathmůže být absolutní nebo relativní vzhledem k aktuální soubor šablony.
Kromě toho zvláštní Visual Studio rozšíření můžete zadat vlastní adresáře zahrnout soubory.Například při instalaci vizualizaci a modelování SDK (nástroje DSL) následující složka přidána do seznamu zahrnout: Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\DSL SDK\DSL Designer\11.0\TextTemplates.
Tato další zahrnout složky závisí na souboru včetně přípony souboru.DSL nástroje patří například složka je k dispozici pouze soubory, které mají příponu souboru, včetně.tt
filePathmůže obsahovat proměnné prostředí, které jsou odděleny "%".Příklad:
<#@ include file="%HOMEPATH%\MyIncludeFile.t4" #>
Název souboru není nutné použít příponu ".tt".
Chcete použít jinou příponu, například ".t4" pro zahrnuté soubory.Důvodem je, že při přidání .tt soubor projektu, Visual Studio automaticky nastaví jeho Vlastní nástroj vlastnost TextTemplatingFileGenerator.Zahrnuté soubory jednotlivě transformované obvykle nechcete.
Na druhé straně by měla být vědoma, že v některých případech příponu souboru ovlivní které další složky budou vyhledány soubory zahrnutí.To může být důležité mít v zahrnutém souboru, který zahrnuje další soubory.
Zahrnutý obsah je zpracována téměř, jako kdyby byla část šablony včetně textu.Však můžete zahrnout soubor, který obsahuje blok funkce třídy <#+...#> i include směrnice následuje běžného textu a standardní řídicí bloky.
MyTextTemplate.tt:
<#@ output extension=".txt" #>
Output message 1 (from top template).
<#@ include file="TextFile1.t4"#>
Output message 5 (from top template).
<#
GenerateMessage(6); // defined in TextFile1.t4
AnotherGenerateMessage(7); // defined in TextFile2.t4
#>
TextFile1.t4:
Output Message 2 (from included file).
<#@include file="TextFile2.t4" #>
Output Message 4 (from included file).
<#+ // Start of class feature control block.
void GenerateMessage(int n)
{
#>
Output Message <#= n #> (from GenerateMessage method).
<#+
}
#>
TextFile2.t4:
Output Message 3 (from included file 2).
<#+ // Start of class feature control block.
void AnotherGenerateMessage(int n)
{
#>
Output Message <#= n #> (from AnotherGenerateMessage method).
<#+
}
#>
Výsledný vygenerován soubor MyTextTemplate.txt:
Output message 1 (from top template).
Output Message 2 (from included file).
Output Message 3 (from included file 2).
Output Message 4 (from included file).
Output message 5 (from top template).
Output Message 6 (from GenerateMessage method).
Output Message 7 (from AnotherGenerateMessage method).