VisualizerObjectSource Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyediakan akses ke objek yang sedang divisualisasikan.
Subkelas kelas ini untuk menyediakan fungsionalitas kustom.
public ref class VisualizerObjectSource
[Windows::Foundation::Metadata::WebHostHidden]
class VisualizerObjectSource
public class VisualizerObjectSource
type VisualizerObjectSource = class
Public Class VisualizerObjectSource
- Warisan
-
VisualizerObjectSource
Contoh
[assembly: System.Diagnostics.DebuggerVisualizer(
typeof(MyFirstVisualizer.DebuggerSide),
// The object source is specified on the next line <<<<<
typeof(VisualizerObjectSource),
Target = typeof(System.String),
Description = "My First Visualizer")]
Keterangan
Visualizer adalah program kecil yang digunakan debugger Visual Studio untuk menampilkan (memvisualisasikan) objek dari jenis data tertentu dengan cara yang bermakna. Untuk memvisualisasikan objek, visualizer menggunakan kode yang berjalan dalam proses debugger ( sisi debugger) dan kode dalam proses yang sedang di-debug (sisi debuggee).
Sisi debugger dan sisi debuggee berkomunikasi satu sama lain dengan menggunakan VisualizerObjectSource dan IVisualizerObjectProvider.
Sisi debugee menggunakan DebuggerVisualizerAttribute untuk menentukan objek VisualizerObjectSource untuk sisi debugger. Sisi debugger memiliki akses ke sisi tersebut secara tidak langsung melalui IVisualizerObjectProvider antarmuka.
Konstruktor
VisualizerObjectSource() |
Menyediakan akses ke objek yang sedang divisualisasikan. |
Properti
IsBinaryFormatterSupported |
Mengembalikan true jika proses debuggee tempat visualizer dihosting mendukung kelas Binary Formatter. Jika tidak demikian, kelas yang berasal dari kelas ini harus menserialisasikan objek mereka melalui JSON. |
SelectedFormatterPolicy |
Kebijakan format yang ingin digunakan kelas ini saat membuat serialisasi/deserialisasi informasi. Namun, ini dapat ditimpa oleh debugger dalam skenario di mana kebijakan format yang dipilih tidak didukung. |
Metode
CreateReplacementObject(Object, Stream) |
Membuat dan mengembalikan objek pengganti untuk objek yang diteruskan berdasarkan data serial. |
Deserialize(Stream) |
Kedaluwarsa.
Metode pembantu warisan yang digunakan oleh visualizer lama yang memudahkan untuk menulis kode serialisasi. Ini menggunakan serialisasi biner default untuk membaca objek yang diberikan dari aliran. Namun, karena kerentanan keamanan dengan penggunaannya, itu tidak boleh lagi digunakan, dan akan melemparkan versi .NET yang lebih baru seperti ASP.NET Core 5.0. Jika dipanggil pada aplikasi target yang mendukung Serialisasi Biner, setelah metode selesai, penunjuk baca aliran lanjutan melewati byte objek |
DeserializeFromJson(Stream, Type, Object) |
Mendeserialisasi data dalam format JSON dari aliran yang ditentukan ke objek dari jenis tertentu menggunakan pustaka Newtonsoft.Json. |
DeserializeFromJson<T>(Stream, Object) |
Mendeserialisasi data dalam format JSON dari aliran yang ditentukan ke objek dari jenis tertentu menggunakan pustaka Newtonsoft.Json. |
GetData(Object, Stream) |
Mendapatkan blob data. Menulis data dari objek ke dalam aliran memori. |
GetDeserializableObject(Stream) |
Metode pembantu yang dapat digunakan untuk mendapatkan objek yang dapat dideserialisasi untuk kasus di mana aplikasi target mungkin tidak mendukung Serialisasi Biner. Dalam kasus ini, format yang mendasar harus diserialisasikan menggunakan JSON, sehingga penelepon dapat mengkueri properti individual untuk menentukan jenis objek yang ingin mereka deserialisasi. |
Serialize(Stream, Object) |
Menserialisasikan objek yang ditentukan ke dalam aliran. Secara default, objek akan diserialisasikan menggunakan serialisasi biner melalui BinaryFormatter. Namun, jika aplikasi target tidak mendukung serialisasi biner (seperti dalam kasus aplikasi ASP.NET Core 5.0+), metode akan membuat serialisasi objek menggunakan teknologi serialisasi JSON apa pun yang tersedia. Serialisasi biner tidak didukung di luar visualizer proses. Oleh karena itu, metode ini akan selalu menserialisasikannya menggunakan pustaka Newtonsoft.Json. |
SerializeAsJson(Stream, Object, Object) |
Menserialisasikan objek yang ditentukan sebagai JSON ke dalam aliran menggunakan pustaka Newtonsoft.Json. |
TransferData(Object, Stream, Stream) |
Dipanggil saat jenis visualizer sisi UI memanggil IVisualizerObjectProvider.TransferData(Stream) atau IVisualizerObjectProvider.TransferObject(object).
Metode ini dapat digunakan untuk menentukan protokol passing pesan kustom untuk berkomunikasi antara jenis visualizer sisi UI dan sisi debuggee, atau untuk memanggil tindakan kustom pada jenis visualizer sisi debuggee. Jenis visualizer sisi UI dapat meneruskan data arbitrer yang diserialisasikan ke dalam |