Sdílet prostřednictvím


Vytváření vlastních procesorů pro direktivy textových šablon T4

Procesu transformace textu šablony trvá text šablony jako vstup a vytvoří textový soubor jako výstup.Modul transformace textu šablony procesu a motor pracuje s hostitele transformační šablony text a text šablony jeden nebo více ovládacích prvků směrnice procesory proces dokončete.Další informace naleznete v tématu Proces transformace textových šablon.

Chcete-li vytvořit vlastní procesor směrnice vytvořit třídu, která dědí buď z DirectiveProcessor nebo RequiresProvidesDirectiveProcessor.

Je rozdíl mezi těmito dvěma DirectiveProcessor implementuje minimální rozhraní, které je nutné získat parametry uživatele a generovat kód, který vytváří výstupní soubor šablony.RequiresProvidesDirectiveProcessorimplementuje návrhovém vzoru vyžaduje nebo nabízí.RequiresProvidesDirectiveProcessorzpracovává dvě zvláštní parametry, requires a provides.Například může vlastní procesor směrnice přijmout název souboru z uživatel otevřít a číst soubor a uložte textového souboru s názvem proměnné fileText.Podtřída RequiresProvidesDirectiveProcessor třídy trvat od uživatele název souboru jako hodnota requires parametr a název proměnné pro uložení textu jako hodnota provides parametr.Tento procesor by otevřít a číst soubor a pak uložení textového souboru v zadané proměnné.

Před vlastní procesor směrnice volání z textu šablony v Visual Studio, je nutné zaregistrovat.

Další informace o přidání klíče registru naleznete v Nastavení vlastního procesoru direktiv.

Vlastní direktivy

Vlastní směrnice vypadá takto:

<#@ MyDirective Processor="MyDirectiveProcessor" parameter1="value1" … #>

Pokud chcete přístup externích dat nebo zdroje z textu šablony můžete použít vlastní procesor směrnice.

Text různých šablon lze sdílet funkce, které obsahuje jeden procesor směrnice, směrnice procesory umožňují faktor kód pro opakované použití.Integrovaná include směrnice je podobné, protože pomocí faktoru mimo kód a sdílet mezi různými text šablony.Rozdíl je, že funkce, include směrnice stanoví pevná a nepřijímá žádné parametry.Pokud chcete poskytnout běžné funkce do textu šablony a šablony předat parametry, musíte vytvořit vlastní procesor směrnice.

Některé příklady vlastní směrnice procesorů může být:

  • Směrnice procesor vrátit data z databáze, která přijímá uživatelské jméno a heslo jako parametry.

  • Směrnice procesoru pro otevření a čtení souboru, který přijímá název souboru jako parametr.

Hlavní části vlastní procesor směrnice

Rozvíjet směrnice procesoru, musíte vytvořit buď z třídy DirectiveProcessor nebo RequiresProvidesDirectiveProcessor.

Nejdůležitější DirectiveProcessor jsou metody, které musí implementovat.

  • bool IsDirectiveSupported(string directiveName)-Návrat true Pokud směrnice procesoru lze čelit pojmenované směrnice.

  • void ProcessDirective (string directiveName, IDictionary<string, string> arguments)-Modul šablony volání této metody každý výskyt směrnice v šabloně.Procesor by výsledky uložit.

Po všechna volání ProcessDirective() stroj templating bude volat tyto metody:

  • string[] GetReferencesForProcessingRun()-Návrat názvy sestavení, které vyžaduje kód šablony.

  • string[] GetImportsForProcessingRun()-Návrat obory názvů, které lze použít v kódu šablony.

  • string GetClassCodeForProcessingRun()-Návratový kód metody, vlastnosti a jiné prohlášení, které můžete použít kód šablony.Nejjednodušší způsob je vytvoření řetězce obsahující C# nebo kódu jazyka Visual Basic.Chcete-li směrnice procesor schopný volána ze šablony používající libovolný jazyk CLR, může vytvořit příkazy jako strom CodeDom a vrátit výsledek serializaci stromu v jazyce, v šabloně.

  • Další informace naleznete v tématu Návod: Vytvoření vlastního procesoru direktiv.

V tomto oddíle