Przetwarzanie szablonów tekstowych przy użyciu hosta niestandardowego
Proces przekształcania szablonu tekstu przyjmuje plik szablonu tekstowego jako dane wejściowe i tworzy plik tekstowy jako dane wyjściowe. Aparat przekształcania tekstu można wywołać z rozszerzenia programu Visual Studio lub z autonomicznej aplikacji działającej na maszynie, na której zainstalowano program Visual Studio. Należy jednak podać hosta tworzenia szablonów tekstowych. Ta klasa łączy szablon ze środowiskiem, znajdując zasoby, takie jak zestawy i dołączane pliki, oraz zajmując się obsługą danych wyjściowych i komunikatów o błędach.
Napiwek
Jeśli piszesz pakiet lub rozszerzenie, które zostanie uruchomione w programie Visual Studio, rozważ użycie usługi tworzenia szablonów tekstowych zamiast pisania własnego hosta. Aby uzyskać więcej informacji, zobacz Wywoływanie przekształcenia tekstu w rozszerzeniu programu VS.
Uwaga
Nie zaleca się używania przekształceń szablonu tekstu w aplikacjach serwerowych. Zaleca się używanie przekształceń szablonu tekstu tylko w pojedynczych wątkach. Jest to spowodowane tym, że aparat szablonów tekstowych ponownie używa pojedynczego elementu AppDomain do tłumaczenia, skompilowania i wykonania szablonów. Przetłumaczony kod nie jest odporny na wielowątkowość. Aparat jest przeznaczony do przetwarzania plików szeregowo, ponieważ znajdują się one w projekcie programu Visual Studio w czasie projektowania.
W przypadku aplikacji w czasie wykonywania rozważ użycie wstępnie przetworzonych szablonów tekstu: zobacz Generowanie tekstu w czasie wykonywania z szablonami tekstowymi T4.
Jeśli aplikacja używa zestawu szablonów, które są ustalane w czasie kompilacji, łatwiej jest używać wstępnie przetworzonych szablonów tekstowych. Możesz również użyć tego podejścia, jeśli aplikacja zostanie uruchomiona na maszynie, na której program Visual Studio nie jest zainstalowany. Aby uzyskać więcej informacji, zobacz Generowanie tekstu w czasie wykonywania przy użyciu szablonów tekstu T4.
Wykonywanie szablonu tekstowego w aplikacji
Aby wykonać szablon tekstowy, należy wywołać metodę ProcessTemplate klasy Microsoft.VisualStudio.TextTemplating.Engine:
using Microsoft.VisualStudio.TextTemplating;
...
Engine engine = new Engine();
string output = engine.ProcessTemplate(templateString, host);
Aplikacja musi znaleźć i dostarczyć szablon oraz musi obsłużyć dane wyjściowe.
W parametrze host
należy podać klasę, która implementuje element ITextTemplatingEngineHost. Jest to wywoływane zwrotnie przez aparat.
Host musi mieć możliwość rejestrowania błędów, rozpoznawania odwołań do zestawu i dołączania plików, podawania domeny aplikacji, w której można wykonać szablon, a także wywoływania odpowiednich procesorów dla każdej dyrektywy.
Microsoft.VisualStudio.TextTemplating.Engine Element jest zdefiniowany w pliku Microsoft.VisualStudio.TextTemplating.*.0.dll, a element ITextTemplatingEngineHost jest zdefiniowany w elemecie Microsoft.VisualStudio.TextTemplating.Interfaces.*.0.dll.
W tym obszarze
Przewodnik: Tworzenie niestandardowego hosta szablonu tekstowego pokazuje, jak utworzyć niestandardowy host szablonu tekstowego, który udostępnia funkcje szablonu tekstowego poza programem Visual Studio.
Odwołanie
Powiązana zawartość
- W procesie przekształcania szablonu tekstu opisano sposób działania przekształcania tekstu oraz części, które można dostosować.
- Tworzenie niestandardowych procesorów dyrektywy szablonu tekstowego T4 zawiera omówienie procesorów dyrektywy szablonu tekstu.