Text šablony pomocné metody
Existuje několik metod, které jsou vždy k dispozici, když píšete kód Visual Studio text šablony.Tyto metody jsou definovány v TextTransformation.
Tip
Můžete také použít jiné metody a služby poskytované hostitelského prostředí v pravidelných (nebyla předem zpracována) text šablony.Například můžete vyřešit cesty k souboru, protokolování chyb a získání služby poskytované Visual Studio a všechny balíčky načten.Další informace naleznete v tématu Accessing Visual Studio from a Text Template.
Metody zápisu
Můžete použít Write() a WriteLine() metod pro přidání textu uvnitř bloku kódu standardní, namísto použití blok kódu výraz.Následující kód dva bloky jsou funkčně ekvivalentní.
Blok kódu výraz blok
<#
int i = 10;
while (i-- > 0)
{ #>
<#= i #>
<# }
#>
Blok kódu pomocí WriteLine()
<#
int i = 10;
while (i-- > 0)
{
WriteLine((i.ToString()));
}
#>
Bude pravděpodobně užitečné použít jednu z těchto metod nástroj místo výraz blok uvnitř bloku kódu dlouhé s vnořených řídících struktur.
Write() a WriteLine() metody mají dvě přetížení, která trvá jeden řetězcový parametr a který trvá řetězec složený formát plus pole objektů, které chcete zahrnout do řetězce (stejně jako Console.WriteLine() metoda).Následující dva způsoby WriteLine() jsou funkčně ekvivalentní:
<#
string msg = "Say: {0}, {1}, {2}";
string s1 = "hello";
string s2 = "goodbye";
string s3 = "farewell";
WriteLine(msg, s1, s2, s3);
WriteLine("Say: hello, goodbye, farewell");
#>
Metody odsazení
Odsazení metody lze formátovat výstup do textu šablony.TextTransformation Třída má CurrentIndent řetězec vlastnosti, který zobrazuje aktuální odsazení textu šablony a indentLengths je pole seznamu odsazení, které byly přidány.Můžete přidat odsazení se PushIndent() metoda a odsazení se odečte PopIndent() metoda.Pokud chcete odebrat všechny odsazení, použít ClearIndent() metoda.Následující blok kódu ukazuje použití těchto metod:
<#
WriteLine(CurrentIndent + "Hello");
PushIndent(" ");
WriteLine(CurrentIndent + "Hello");
PushIndent(" ");
WriteLine(CurrentIndent + "Hello");
ClearIndent();
WriteLine(CurrentIndent + "Hello");
PushIndent(" ");
WriteLine(CurrentIndent + "Hello");
#>
Tento blok kódu vytváří následující výstup:
Hello
Hello
Hello
Hello
Hello
Chyby a upozornění metody
Chyby a varování pomocné metody slouží k přidání zprávy Visual Studio seznam chyb.Následující kód například přidá chybové zprávy do seznamu chyb.
<#
try
{
string str = null;
Write(str.Length.ToString());
}
catch (Exception e)
{
Error(e.Message);
}
#>
Přístup k hostiteli a poskytovatele služeb
Vlastnost this.Host poskytuje přístup k vlastnosti, které jsou vystaveny hostitel, který je prováděn v šabloně.Použití this.Host, je nutné nastavit hostspecific atributu v <@template#> směrnice:
<#@template ... hostspecific="true" #>
Typ this.Host závisí na typu hostitele, ve kterém se provádí v šabloně.V šabloně, která je spuštěna v Visual Studio, můžete obsadit this.Host na IServiceProvider získat přístup ke službám, jako je například IDE.Příklad:
EnvDTE.DTE dte = (EnvDTE.DTE) ((IServiceProvider) this.Host)
.GetService(typeof(EnvDTE.DTE));
Pomocí jiné sady pomocných metod
Jako součást procesu generování textu je váš soubor šablony transformovány do třídy, vždy s názvem GeneratedTextTransformation a dědí z TextTransformation.Chcete-li použít jinou sadu metod, můžete napsat vlastní třídy a zadat šablonu směrnice.Třída musí dědit z TextTransformation.
<#@ template inherits="MyUtilityClass" #>
Použití assembly směrnice odkazuje na sestavení, kde lze nalézt zkompilovanou třídu.