2013-03-14 7 views

Odpowiedz

6

Szablon z zestawem specyficznym dla hosta o wartości "true" może uzyskać dostęp do elementu this.Host typu ITextTemplatingEngineHost (MSDN). Możesz następnie użyć np. jego metoda "ResolvePath" w celu zlokalizowania plików potrzebnych do wprowadzenia w szablonie.

Jest to jeszcze bardziej przydatne, gdy używasz niestandardowego silnika szablonów. blog Zobacz Olega tutaj: http://www.olegsych.com/2008/02/t4-template-directive/

+0

Link "Olegsych" nie jest już prawidłowy – Tatranskymedved

4

Można użyć właściwości „” this.Host raz flaga HostSpecific jest ustawiony, który jest typu ITextTemplatingEngineHost i pozwala zrobić rozdzielczość ścieżki pliku między innymi.

Jednak w Visual Studio (nie w czasie kompilacji lub z wiersza poleceń) można również przesłać hosta do IServiceProvider i podłączyć go do globalnego dostawcy usług Visual Studio.

Umożliwia to wykorzystanie dowolnych interfejsów API programu Visual Studio do znajdowania danych do szablonu lub do manipulowania projektem, w którym się znajdujesz lub podobnymi czynnościami.

Kluczowym scenariuszem, który to umożliwia, jest użycie CodeModel (lub wkrótce Roslyn) do analizy kodu źródłowego w projekcie i użycia go jako źródła do generowania metadanych.