Udostępnij za pośrednictwem


Proces transformacji szablonu tekstowego

Proces transformacji tekst szablonu zajmuje plik szablonu tekst jako dane wejściowe i generuje nowy plik tekstowy jako dane wyjściowe.Na przykład można użyć tekstu szablonów do generowania kodu języka Visual Basic lub języka C# lub można wygenerować raport w formacie HTML.

Trzy składniki brać udział w tym procesie: silnika, host a dyrektywa procesorów.Silnik kontroluje procesu; liczbą interakcji z hosta i dyrektywa procesora do utworzenia pliku wyjściowego.Host udostępnia żadnych interakcji ze środowiskiem, takich jak lokalizowanie plików i zestawów.Procesor w dyrektywie dodaje funkcje, takie jak Odczyt danych z pliku XML lub bazy danych.

Proces transformacji szablonu tekstu jest wykonywane w dwóch etapach.Po pierwsze silnik tworzy tymczasowej klasy jest znany jako klasa generowanych transformacji.Ta klasa zawiera kod, który jest generowany przez dyrektywy i bloki kontrolne.Po tym silnik skompilowany i wykonany klasy generowane transformacji do utworzenia pliku wyjściowego.

Składniki

Składnik

Opis

Można dostosowywać (tak/nie)

Silnik

Składnik silnika kontroluje procesu transformacji tekst szablonu

Nie.

Host

Host jest interfejs między silnikiem a środowiska użytkownika.Visual Studiojest hostem tekst procesu transformacji.

Tak.Można napisać niestandardowy hosta.

Dyrektywa procesorów

Dyrektywa procesory są klas, które obsługują dyrektyw w szablonach tekst.Za pomocą dyrektyw do dostarczania danych do szablonu tekst ze źródła danych wejściowych.

Tak.Można napisać niestandardowy procesorów w dyrektywie

Silnik

Silnik odbiera szablonu jako ciąg znaków z hosta, który obsługuje wszystkie pliki, które są używane w procesie transformacji.Silnik zwraca następnie hosta, aby zlokalizować żadnych niestandardowych procesorów w dyrektywie i innych aspektów środowiska naturalnego.Silnik następnie kompiluje i uruchamia klas generowanych transformacji.Silnik zwraca wygenerowany tekst do hosta, który zwykle zapisuje tekst do pliku.

Host

Host jest odpowiedzialny za wszystko, co odnosi się do środowiska naturalnego poza procesu transformacji, w tym następujące:

  • Lokalizowanie tekst i pliki binarne wymagane przez silnik lub dyrektywie procesora.Host można przeszukiwać katalogi i globalna pamięć podręczna zestawów do lokalizowania zestawów.Host można zlokalizować kod niestandardowy procesora w dyrektywie dla silnika.Host również można zlokalizować i odczytać pliki tekstowe i zwracają ich zawartość jako ciągi znaków.

  • Zapewnienie list standardowych zestawów i przestrzenie nazw, które są używane przez aparat do tworzenia klas generowanych transformacji.

  • Dostarczanie domenę aplikacji jest używany, gdy silnik skompilowany i wykonany klas generowanych transformacji.Domeny osobny wniosek jest używany do ochrony aplikacji hosta z błędów w kodzie szablonu.

  • Zapisywanie pliku wygenerowanych danych wyjściowych.

  • Ustawienie domyślne rozszerzenie dla pliku wyjściowego wygenerowany.

  • Obsługa błędy w tekście szablonu transformacji.Na przykład hosta można wyświetlić błędy w interfejsie użytkownika lub zapisze je w pliku.(W Visual Studio, błędy są wyświetlane w oknie komunikatu o błędzie.)

  • Dostarczanie wartości wymaganego parametru, jeśli użytkownik ma dyrektywy o nazwie bez podania wartości.Dyrektywa procesora można określić nazwę tej dyrektywy, a parametr i poproś hosta, aby podać wartość domyślną, jeśli ma on jednego.

Dyrektywy i dyrektywy procesorów

Dyrektywa jest polecenie w szablonie tekstu.Zapewnia on parametry procesu wytwarzania.Zwykle dyrektyw określają źródło i typ modelu lub innych danych wejściowych i rozszerzenie nazwy pliku dla pliku wyjściowego.

Dyrektywa procesor może przetwarzać jeden lub więcej dyrektyw.Podczas transformacji szablon musi być zainstalowany w dyrektywie procesora, który może zajmować dyrektyw w szablonie.

Dyrektyw pracy przez dodanie kodu w klasie generowanych transformacji.Podczas tworzenia klasy generowane transformacji wywołania dyrektyw z szablonu tekstu i silnik przetwarza wszystkie wywołania w dyrektywie.Po wywołaniu dyrektywy pomyślnie, reszta kodu, napisany w szablonie tekstu może polegać na funkcjonalność, że dyrektywa stanowi.Na przykład, można wprowadzić następujące wywołanie do import dyrektywy w szablonie:

<#@ import namespace="System.Text" #>

Standard procesor dyrektywa konwertuje to using instrukcji w klasie generowanych transformacji.Następnie można użyć StringBuilder klasy w pozostałej części kodu szablonu bez kwalifikujących się go jako System.Text.StringBuilder.