Bagikan melalui


VisualizerObjectSource Kelas

Definisi

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.
Subkelas kelas ini untuk menyediakan fungsionalitas kustom.

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 incomingData dan jenis visualizer sisi debuggee dapat merespons dengan data arbitrer yang diserialisasikan ke dalam outgoingData.

Berlaku untuk