Panduan: Menulis Visualizer di Visual Basic
Penting
Dimulai dengan Visual Studio 2022 versi 17.9, visualizer sekarang dapat ditulis dalam .NET 6.0+ yang kehabisan proses menggunakan model VisualStudio.Extensibility baru. Kami mendorong penulis visualizer untuk mereferensikan dokumentasi baru di Membuat visualizer debugger Visual Studio kecuali mereka ingin mendukung versi Visual Studio yang lebih lama atau ingin mengirim visualizer kustom mereka sebagai bagian dari DLL pustaka.
Panduan ini menunjukkan cara menulis visualizer sederhana dengan menggunakan Visual Basic. Visualizer yang akan Anda buat dalam panduan ini menampilkan isi string menggunakan kotak pesan Formulir Windows. Visualizer string sederhana ini adalah contoh dasar untuk menunjukkan bagaimana Anda dapat membuat visualizer untuk jenis data lain yang lebih sesuai untuk proyek Anda.
Catatan
Kotak dialog dan perintah menu yang Anda lihat mungkin berbeda dari yang dijelaskan di Bantuan, bergantung pada pengaturan atau edisi aktif Anda. Untuk mengubah pengaturan Anda, buka menu Alat dan pilih Impor dan Ekspor. Untuk mengetahui informasi selengkapnya, lihat Mengatur ulang dan menjalankan ulang.
Kode visualizer harus ditempatkan dalam DLL yang akan dibaca oleh debugger. Langkah pertama adalah membuat proyek pustaka kelas untuk DLL.
Membuat dan Menyiapkan Proyek Pustaka Kelas
Untuk membuat proyek pustaka kelas
Buat proyek pustaka kelas baru.
Tekan Esc untuk menutup jendela mulai. Ketik Ctrl + Q untuk membuka kotak pencarian, ketik visual basic, pilih Templat, lalu pilih Buat Pustaka Kelas (.NET Framework) baru. Dalam kotak dialog yang muncul, pilih Buat.
Ketik nama yang sesuai untuk pustaka kelas, seperti
MyFirstVisualizer
, lalu klik Buat atau OK.Setelah membuat pustaka kelas, Anda harus menambahkan referensi ke Microsoft.VisualStudio.DebuggerVisualizers.DLL, sehingga Anda dapat menggunakan kelas yang ditentukan di sana. Namun, pertama-tama, Anda memberi proyek Anda nama yang bermakna.
Untuk mengganti nama Class1.vb dan menambahkan Microsoft.VisualStudio.DebuggerVisualizers
Di Penjelajah Solusi, klik kanan Class1.cs, dan klik Ganti Nama pada menu pintasan.
Ubah nama dari Class1.vb menjadi sesuatu yang bermakna, seperti DebuggerSide.vb.
Catatan
Visual Studio secara otomatis mengubah deklarasi kelas di DebuggerSide.vb agar sesuai dengan nama file baru.
Di Penjelajah Solusi, klik kanan Visualizer Pertama Saya, dan klik Tambahkan Referensi pada menu pintasan.
Di kotak dialog Tambahkan Referensi, pada tab Telusuri, pilih Telusuri dan temukan Microsoft.VisualStudio.DebuggerVisualizers.DLL.
Anda dapat menemukan DLL di subdirektori <Direktori Instal Visual Studio>\Common7\IDE\PublicAssemblies dari direktori penginstalan Visual Studio.
Klik OK.
Di DebuggerSide.vb, tambahkan pernyataan berikut ke pernyataan
Imports
:Imports Microsoft.VisualStudio.DebuggerVisualizers
Menambahkan Kode sisi Debugger
Sekarang Anda siap untuk membuat kode sisi debugger. Ini adalah kode yang berjalan dalam debugger untuk menampilkan informasi yang ingin Anda visualisasikan. Pertama, Anda harus mengubah deklarasi objek DebuggerSide
sehingga mewarisi dari kelas dasar DialogDebuggerVisualizer
.
Untuk mewarisi dari DialogDebuggerVisualizer
Di DebuggerSide.vb, buka baris kode berikut:
Public Class DebuggerSide
Edit kode sehingga terlihat seperti ini:
Public Class DebuggerSide Inherits DialogDebuggerVisualizer
Catatan
DialogDebuggerVisualizer mengharapkan
FormatterPolicy
argumen dalam konstruktornya. Namun, karena masalah keamanan yang dijelaskan dalam Pertimbangan sisi debugger khusus untuk .NET 5.0+, dimulai dengan Visual Studio 2022 versi 17.11, visualizer tidak akan dapat menentukanLegacy
kebijakan formatter.DialogDebuggerVisualizer
memiliki satu metode abstrak,Show
, yang harus Anda ambil alih.
Untuk mengambil alih metode DialogDebuggerVisualizer.Show
Di
public class DebuggerSide
, tambahkan metode berikut:Protected Overrides Sub Show(ByVal windowService As Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService, ByVal objectProvider As Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider) End Sub
Metode
Show
berisi kode yang benar-benar membuat kotak dialog visualizer, atau antarmuka pengguna lain, dan menampilkan informasi yang telah diteruskan ke visualizer dari debugger. Anda harus menambahkan kode yang membuat kotak dialog dan menampilkan informasi. Dalam panduan ini, Anda akan melakukannya menggunakan kotak pesan Formulir Windows. Pertama, Anda harus menambahkan referensi dan pernyataanImports
untuk System.Windows.Forms.
Untuk menambahkan System.Windows.Forms
Di Penjelajah Solusi, klik kanan Referensi dan klik Tambahkan Referensi pada menu pintasan.
Dalam kotak dialog Tambahkan Referensi, pada tab Telusuri, pilih Telusuri, dan temukan System.Windows.Forms.DLL.
Anda dapat menemukan DLL di C:\Windows\Microsoft.NET\Framework\v4.0.30319.
Klik OK.
Di DebuggerSide.cs, tambahkan pernyataan berikut ke pernyataan
Imports
:Imports System.Windows.Forms
Membuat Antarmuka Pengguna Visualizer Anda
Sekarang Anda akan menambahkan beberapa kode untuk membuat dan menampilkan antarmuka pengguna untuk visualizer Anda. Karena ini adalah visualizer pertama Anda, Anda akan menjaga antarmuka pengguna tetap sederhana dan menggunakan Kotak Pesan.
Untuk memperlihatkan output visualizer dalam kotak dialog
Dalam metode
Show
, tambahkan baris kode berikut:MessageBox.Show(objectProvider.GetObject().ToString())
Kode contoh ini tidak menyertakan penanganan kesalahan. Anda harus menyertakan penanganan kesalahan dalam visualizer nyata, atau jenis aplikasi lainnya.
Pada menu Build, pilih Build MyFirstVisualizer. Proyek harus berhasil dibangun. Perbaiki semua kesalahan build sebelum melanjutkan.
Menambahkan Atribut yang Diperlukan
Itu adalah akhir dari kode sisi debugger. Namun, ada satu langkah lagi: atribut yang memberi tahu sisi debuggee koleksi kelas mana yang terdiri dari visualizer.
Untuk menambahkan jenis yang akan divisualisasikan untuk kode sisi debuggee
Dalam kode sisi debugger, Anda menentukan jenis yang akan divisualisasikan (sumber objek) untuk debuggee menggunakan atribut DebuggerVisualizerAttribute. Properti Target
mengatur jenis yang akan divisualisasikan.
Tambahkan kode atribut berikut ke DebuggerSide.vb, setelah pernyataan
Imports
tetapi sebelumnamespace MyFirstVisualizer
:<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
Pada menu Build, pilih Build MyFirstVisualizer. Proyek harus berhasil dibangun. Perbaiki semua kesalahan build sebelum melanjutkan.
Membuat Rangkaian Pengujian
Pada titik ini, visualizer pertama Anda selesai. Jika telah mengikuti langkah-langkah dengan benar, Anda dapat membangun visualizer dan menginstalnya ke Visual Studio. Namun, sebelum Anda menginstal visualizer ke Visual Studio, Anda harus mengujinya untuk memastikan bahwa visualizer berjalan dengan benar. Anda sekarang akan membuat test harness untuk menjalankan visualizer tanpa menginstalnya ke Visual Studio.
Untuk menambahkan metode pengujian untuk menampilkan visualizer
Tambahkan metode berikut ke kelas
public DebuggerSide
:Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object) Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide)) visualizerHost.ShowVisualizer() End Sub
Pada menu Build, pilih Build MyFirstVisualizer. Proyek harus berhasil dibangun. Perbaiki semua kesalahan build sebelum melanjutkan.
Selanjutnya, Anda harus membuat proyek yang dapat dijalankan untuk memanggil DLL visualizer Anda. Untuk mempermudah, gunakan proyek aplikasi konsol.
Untuk menambahkan proyek aplikasi konsol ke solusi
Di Penjelajah Solusi, klik kanan solusi, pilih Tambahkan, lalu klik Proyek Baru.
Dalam kotak Pencarian, ketik visual basic, pilih Templat, lalu pilih Buat Aplikasi Konsol (.NET Framework) baru. Dalam kotak dialog yang muncul, pilih Buat.
Ketik nama yang sesuai untuk pustaka kelas, seperti
MyTestConsole
, lalu klik Buat atau OK.Sekarang, Anda harus menambahkan referensi yang diperlukan sehingga MyTestConsole dapat memanggil MyFirstVisualizer.
Untuk menambahkan referensi yang diperlukan ke MyTestConsole
Di Penjelajah Solusi, klik kanan MyTestConsole dan pilih Tambahkan Referensi pada menu pintasan.
Di kotak dialog Tambahkan Referensi, klik Microsoft.VisualStudio.DebuggerVisualizers pada tab Telusuri.
Klik OK.
Klik kanan MyTestConsole lalu klik Tambahkan Referensi lagi.
Di kotak dialog Tambahkan Referensi, klik tab Proyek, lalu pilih MyFirstVisualizer.
Klik OK.
Menyelesaikan Rangkaian Pengujian Anda dan Menguji Visualizer Anda
Sekarang, Anda akan menambahkan kode untuk menyelesaikan rangkaian pengujian.
Untuk menambahkan kode ke MyTestConsole
Di Penjelajah Solusi, klik kanan Program.vb, dan klik Ganti Nama pada menu pintasan.
Edit nama dari Module1.vb menjadi sesuatu yang sesuai, seperti TestConsole.vb.
Perhatikan bahwa Visual Studio secara otomatis mengubah deklarasi kelas di TestConsole.vb agar sesuai dengan nama file baru.
Di TestConsole. vb, tambahkan pernyataan
Imports
berikut:Imports MyFirstVisualizer
Dalam metode
Main
, tambahkan kode berikut:Dim myString As String = "Hello, World" DebuggerSide.TestShowVisualizer(myString)
Sekarang, Anda siap untuk menguji visualizer pertama Anda.
Untuk menguji visualizer
Di Penjelajah Solusi, klik kanan MyTestConsole dan klik Tetapkan sebagai Proyek Startup pada menu pintasan.
Pada menu Debug, klik Mulai.
Aplikasi konsol dimulai. Visualizer muncul dan menampilkan string "Halo, Dunia."
Selamat. Anda baru saja membuat dan menguji visualizer pertama Anda.
Jika Anda ingin menggunakan visualizer Anda di Visual Studio alih-alih hanya memanggilnya dari rangkaian pengujian, Anda harus menginstalnya. Untuk informasi selengkapnya, lihat Cara: Menginstal Visualizer.