Melog Objek Kompleks dalam C#
Apabila menyahpepijat kod, ia selalunya membantu untuk melihat keadaan objek pada masa jalan. Tetingkap Segera Visual Studio menyediakan cara yang mudah untuk memaparkan kandungan terformat objek menggunakan sintaks ? nama objek.
Untuk mencapai ini dari dalam kod untuk tujuan pengelogan, terdapat beberapa pendekatan yang perlu dipertimbangkan:
Pensirian JSON:
Kaedah yang berkesan untuk lambakan graf objek besar menggunakan siri JSON. Ini boleh dicapai menggunakan perpustakaan Newtonsoft.Json:
using Newtonsoft.Json; public static class ObjectDumper { public static string Dump(object obj) { return JsonConvert.SerializeObject(obj); } }
Dalam Tetingkap Segera, anda kemudian boleh melaksanakan perkara berikut:
var logEntry = ObjectDumper.Dump(myObj);
Untuk menggambarkan struktur JSON, kembangkan logEntry nilai dalam tetingkap Locals dan pilih pilihan "Json visualizer" daripada karet lungsur di sebelah kaca pembesar ikon.
Reflection and ToString():
Pendekatan lain ialah menggunakan Reflection untuk mengakses sifat dan nilai objek dan menukarnya secara manual kepada perwakilan rentetan:
public static string Dump(object obj) { StringBuilder sb = new StringBuilder(); Type type = obj.GetType(); PropertyInfo[] properties = type.GetProperties(); sb.Append("Object of type: " + type.Name + "\n"); foreach (PropertyInfo property in properties) { sb.Append(property.Name + ": "); sb.Append(property.GetValue(obj)?.ToString() ?? "null"); sb.Append("\n"); } return sb.ToString(); }
Lain-lain Pilihan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Log Objek Kompleks dengan Berkesan dalam C# untuk Penyahpepijatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!