Bagikan melalui


Memproses Templat Teks dengan menggunakan Host Kustom

Proses transformasi templat teks mengambil file templat teks sebagai input dan menghasilkan file teks sebagai output. Anda dapat memanggil mesin transformasi teks dari ekstensi Visual Studio, atau dari aplikasi mandiri yang berjalan di komputer tempat Visual Studio diinstal. Namun, Anda harus menyediakan host templat teks. Kelas ini menghubungkan templat ke lingkungan, menemukan sumber daya seperti assemblies dan file include, serta menangani pesan keluaran dan pesan kesalahan.

Petunjuk / Saran

Jika Anda menulis paket atau ekstensi yang akan berjalan dalam Visual Studio, pertimbangkan untuk menggunakan layanan templat teks, alih-alih menulis host Anda sendiri. Untuk informasi selengkapnya, lihat Memanggil Transformasi Teks dalam Ekstensi VS.

Nota

Kami tidak menyarankan penggunaan transformasi templat teks di aplikasi server. Kami tidak merekomendasikan penggunaan transformasi templat teks kecuali dalam satu utas. Ini karena mesin templat teks menggunakan kembali satu AppDomain untuk menerjemahkan, mengkompilasi, dan menjalankan templat. Kode yang diterjemahkan tidak dirancang untuk thread-safe. Mesin dirancang untuk memproses file secara serial, karena berada dalam proyek Visual Studio pada waktu desain.

Untuk aplikasi run-time, pertimbangkan untuk menggunakan templat teks yang telah dipra-proses: lihat Pembuatan Teks Run-Time menggunakan Templat Teks T4.

Jika aplikasi Anda menggunakan sekumpulan templat yang diperbaiki pada waktu kompilasi, lebih mudah untuk menggunakan Templat Teks yang Telah Diproscesikan sebelumnya. Anda juga dapat menggunakan pendekatan tersebut jika aplikasi Anda akan berjalan pada komputer tempat Visual Studio tidak diinstal. Untuk informasi selengkapnya, lihat Run-Time Text Generation dengan Templat Teks T4.

Menjalankan Templat Teks di Aplikasi Anda

Untuk menjalankan templat teks, Anda memanggil metode ProcessTemplate dari Microsoft.VisualStudio.TextTemplating.Engine:

using Microsoft.VisualStudio.TextTemplating;
...
Engine engine = new Engine();
string output = engine.ProcessTemplate(templateString, host);

Aplikasi Anda harus menemukan dan menyediakan templat, dan harus menangani output.

host Dalam parameter , Anda harus menyediakan kelas yang mengimplementasikan ITextTemplatingEngineHost. Ini dipanggil kembali oleh Mesin.

Host harus dapat mencatat kesalahan, menyelesaikan referensi ke perakitan dan menyertakan file, menyediakan Domain Aplikasi tempat templat dapat dijalankan, dan memanggil prosesor yang sesuai untuk setiap arahan.

Microsoft.VisualStudio.TextTemplating.Engine didefinisikan dalam Microsoft.VisualStudio.TextTemplating.*.0.dll, dan ITextTemplatingEngineHost ditentukan dalam Microsoft.VisualStudio.TextTemplating.Interfaces.*.0.dll.

Di bagian ini

Panduan: Membuat Host Templat Teks Kustom menunjukkan kepada Anda cara membuat host templat teks kustom yang membuat fungsionalitas templat teks tersedia di luar Visual Studio.

Reference

ITextTemplatingEngineHost