Udostępnij za pośrednictwem


Tworzenie niestandardowych procesorów dyrektywy T4 dotyczącej szablonu tekstowego

Procesu transformacji szablonu tekst ma tekst szablonu pliku jako danych wejściowych i tworzy plik tekstowy jako dane wyjściowe.Tekst szablonu transformacji silnika kontroli procesu i silnik współdziała z hosta transformacji szablonu tekstu i jeden lub więcej szablonów tekst procesorów dyrektywa do ukończenia procesu.Aby uzyskać więcej informacji, zobacz Proces transformacji szablonu tekstowego.

Aby utworzyć niestandardowe procesora w dyrektywie, należy utworzyć klasy, która dziedziczy albo DirectiveProcessor lub RequiresProvidesDirectiveProcessor.

Różnica między tymi dwoma jest DirectiveProcessor implementuje interfejs minimalne, że konieczne jest uzyskać parametrów użytkownika oraz do generowania kodu daje szablon pliku wyjściowego.RequiresProvidesDirectiveProcessorimplementuje wymaga/zawiera wzorzec projektowania.RequiresProvidesDirectiveProcessorobsługuje dwa parametry specjalne, requires i provides.Na przykład, niestandardowy procesora dyrektywa może zaakceptować nazwę pliku od użytkownika, Otwórz i odczytać pliku i następnie przechowywać tekst pliku w zmiennej o nazwie fileText.Podklasa RequiresProvidesDirectiveProcessor klasy może zająć nazwy pliku przez użytkownika jako wartość requires parametr i nazwę zmiennej, w którym chcesz przechowywać tekst jako wartość provides parametru.Ten procesor będzie otworzyć i przeczytać plik i następnie przechowywać tekst pliku w określonej zmiennej.

Zanim zadzwonisz do niestandardowych procesora w dyrektywie z szablonu tekstu w Visual Studio, musi być zarejestrowany.

Aby uzyskać więcej informacji na temat dodawania klucza rejestru, zobacz Wdrażanie niestandardowego procesora dyrektywy.

Niestandardowe dyrektyw

Niestandardowe dyrektywy wygląda następująco:

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

Można użyć niestandardowych procesora w dyrektywie, gdy chcesz uzyskać dostęp do danych zewnętrznych lub zasoby z szablonu tekstu.

Tekst różnych szablonów można udostępnić funkcje, które stanowi pojedynczy procesor w dyrektywie, dyrektywa procesorów zapewniają sposób współczynnik kodu do ponownego użycia.Wbudowane include dyrektywy jest podobna, ponieważ służy do współczynnika kodu i udostępnić go wśród tekstu różnych szablonów.Różnica jest to, że wszelkie funkcje, include przewiduje dyrektywa ustala się i nie akceptuje parametry.Jeśli chcesz zapewnić wspólne funkcje do szablonu tekstu i umożliwić szablon przekazywać parametry należy utworzyć niestandardowe procesora w dyrektywie.

Niektóre przykłady niestandardowych procesorów dyrektywa może być:

  • Dyrektywa procesora, aby zwrócić dane z bazy danych, która akceptuje nazwy użytkownika i hasła jako parametry.

  • Dyrektywa procesora, aby otworzyć i przeczytać plik, który przyjmuje nazwę pliku jako parametr.

Głównych częściach niestandardowe procesora w dyrektywie

Do opracowania dyrektywy procesora, należy utworzyć klasę, która dziedziczy albo DirectiveProcessor lub RequiresProvidesDirectiveProcessor.

Najważniejsze z nich DirectiveProcessor dostępne są następujące metody, które należy zaimplementować.

  • bool IsDirectiveSupported(string directiveName)-Zwrotu true Jeśli procesor w dyrektywie można zajmować nazwanych dyrektywy.

  • void ProcessDirective (string directiveName, IDictionary<string, string> arguments)-Silnik szablonu wywołania tej metody dla każdego wystąpienia dyrektywy w szablonie.Procesor należy zapisać wyniki.

Po wszystkie wywołania ProcessDirective() silnika dynamicznego będzie wywoływać te metody:

  • string[] GetReferencesForProcessingRun()-Zwraca nazwy zestawów, które wymaga kodu szablonu.

  • string[] GetImportsForProcessingRun()-Zwrotu przestrzenie nazw, które mogą być używane w kodzie szablonu.

  • string GetClassCodeForProcessingRun()-Zwraca kod metody, właściwości i innych deklaracji, można użyć kodu szablonu.Najprostszym sposobem wykonania tego zadania jest konstruowanie ciągu zawierającego C# lub kodu języka Visual Basic.Aby procesor dyrektywa zdolnych wywoływana z szablonu, który używa dowolnego języka środowiska CLR, można skonstruować instrukcji jak drzewo CodeDom i następnie zwraca wynik szeregowania drzewa w języku użytym przez szablon.

  • Aby uzyskać więcej informacji, zobacz Wskazówki: tworzenie niestandardowego procesora dyrektywy.

W tej sekcji