Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Terdapat beberapa metode yang selalu tersedia untuk Anda ketika Anda menulis kode di templat teks Visual Studio. Metode ini didefinisikan dalam TextTransformation.
Tip
Anda juga dapat menggunakan metode dan layanan lain yang disediakan oleh lingkungan host di templat teks biasa (tidak diproses sebelumnya). Misalnya, Anda dapat menyelesaikan masalah jalur file, kesalahan log, dan mendapatkan layanan yang disediakan oleh Visual Studio dan paket apa pun yang dimuat. Untuk informasi selengkapnya, lihat Mengakses Visual Studio dari Templat Teks.
Metode tulis
Anda dapat menggunakan metode Write() dan WriteLine() untuk menambahkan teks di dalam blok kode standar, alih-alih menggunakan blok kode ekspresi. Dua blok kode berikut ini setara secara fungsional.
Blok kode dengan blok ekspresi
<#
int i = 10;
while (i-- > 0)
{ #>
<#= i #>
<# }
#>
Blok kode menggunakan WriteLine()
<#
int i = 10;
while (i-- > 0)
{
WriteLine((i.ToString()));
}
#>
Anda mungkin merasa lebih terbantu dengan menggunakan salah satu metode utilitas ini dibanding menggunakan blok ekspresi di dalam blok kode panjang dengan struktur kontrol berlapis.
Metode Write() dan WriteLine() memiliki dua kelebihan beban, satu yang mengambil parameter string tunggal dan satu lagi yang mengambil string format gabungan ditambah array objek untuk disertakan dalam string (seperti metode Console.WriteLine()). Dua kegunaan WriteLine() berikut ini setara secara fungsional:
<#
string msg = "Say: {0}, {1}, {2}";
string s1 = "hello";
string s2 = "goodbye";
string s3 = "farewell";
WriteLine(msg, s1, s2, s3);
WriteLine("Say: hello, goodbye, farewell");
#>
Metode indentasi
Anda dapat menggunakan metode indentasi untuk memformat output templat teks Anda. Kelas TextTransformation memiliki properti string CurrentIndent yang memperlihatkan indentasi saat ini dalam templat teks dan bidang indentLengths yang merupakan daftar indentasi yang telah ditambahkan. Anda dapat menambahkan indentasi dengan metode PushIndent() dan mengurangi indentasi dengan metode PopIndent(). Jika Anda ingin menghapus semua indentasi, gunakan metode ClearIndent(). Blok kode berikut menunjukkan penggunaan metode ini:
<#
WriteLine(CurrentIndent + "Hello");
PushIndent(" ");
WriteLine(CurrentIndent + "Hello");
PushIndent(" ");
WriteLine(CurrentIndent + "Hello");
ClearIndent();
WriteLine(CurrentIndent + "Hello");
PushIndent(" ");
WriteLine(CurrentIndent + "Hello");
#>
Kode blok ini menghasilkan output berikut:
Hello
Hello
Hello
Hello
Hello
Metode kesalahan dan peringatan
Anda dapat menggunakan metode utilitas kesalahan dan peringatan untuk menambahkan pesan ke Daftar Kesalahan Visual Studio. Misalnya, kode berikut akan menambahkan pesan kesalahan ke Daftar Kesalahan.
<#
try
{
string str = null;
Write(str.Length.ToString());
}
catch (Exception e)
{
Error(e.Message);
}
#>
Mengakses ke Host dan Penyedia Layanan
Properti this.Host dapat memberikan akses ke properti yang diekspos oleh host yang menjalankan templat. Untuk menggunakan this.Host, Anda harus mengatur atribut hostspecific dalam direktif <@template#>:
<#@template ... hostspecific="true" #>
Jenis this.Host tergantung pada jenis host tempat templat dijalankan. Pada templat yang berjalan di Visual Studio, Anda dapat mentransmisikan this.Host ke IServiceProvider untuk mendapatkan akses ke layanan seperti IDE. Contohnya:
EnvDTE.DTE dte = (EnvDTE.DTE) ((IServiceProvider) this.Host)
.GetService(typeof(EnvDTE.DTE));
Menggunakan serangkaian metode utilitas yang berbeda
Sebagai bagian dari proses pembuatan teks, file templat Anda diubah menjadi kelas, yang selalu dinamai GeneratedTextTransformation dan diwarisi dari TextTransformation. Jika Anda ingin menggunakan serangkaian metode yang berbeda, Anda dapat menulis kelas Anda sendiri dan menentukannya dalam direktif templat. Kelas Anda harus mewarisi dari TextTransformation.
<#@ template inherits="MyUtilityClass" #>
Gunakan direktif assembly untuk mereferensikan rakitan tempat kelas yang dikompilasi dapat ditemukan.