Przetwarzanie szablonów tekstowych przy użyciu hosta niestandardowego
Proces przekształcania szablonu tekstu pobiera plik szablonu tekstu jako dane wejściowe i tworzy plik tekstowy jako dane wyjściowe.Można wywołać aparat przekształcenia tekstu z rozszerzenia Visual Studio lub z samodzielnej aplikacji uruchomionej na komputerze, na którym jest zainstalowany Visual Studio .Jednakże, należy podać hosta 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.
![]() |
---|
Jeśli piszesz pakiet lub rozszerzenie, które będą uruchamiane w ramach Visual Studio, rozważ użycie usługi szablonów tekstowych zamiast pisania własnego hosta.Aby uzyskać więcej informacji, zobacz Wywoływanie transformacji tekstu w rozszerzeniu 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 pojedynczo, tak jak są umieszczone w projekcie Visual Studio w czasie projektowania.
W przypadku aplikacji czasu wykonania, należy rozważyć używanie wstępnie przetworzonych szablonów tekstowych: zobacz Generowanie tekstu czasu wykonywania przy użyciu szablonów tekstowych 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żna również użyć tego podejścia, jeśli aplikacja ma być uruchamiana na komputerze, na którym nie zainstalowano Visual Studio.Aby uzyskać więcej informacji, zobacz Generowanie tekstu czasu wykonywania przy użyciu szablonów tekstowych T4.
Wykonywanie szablonu tekstu w aplikacji
Aby wykonać szablon tekstowy, wywołaj metodę ProcessTemplate 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 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.
Engine jest zdefiniowany w Microsoft.VisualStudio.TextTemplating.*.0.dll, a ITextTemplatingEngineHost jest zdefiniowany w Microsoft.VisualStudio.TextTemplating.Interfaces.*.0.dll.
W tej sekcji
- Wskazówki: tworzenie niestandardowego hosta szablonu tekstowego
Pokazuje, jak utworzyć niestandardowy host szablonu tekstu, który sprawia, że funkcje szablonu tekstu są dostępne poza Visual Studio.
Odwołanie
Sekcje pokrewne
Proces transformacji szablonu tekstowego
W tym artykule opisano, jak działa transformacja tekstu i które części można dostosować.Tworzenie niestandardowych procesorów dyrektywy T4 dotyczącej szablonu tekstowego
Zawiera omówienie procesorów dyrektyw szablonu tekstu.