Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Log Objek Kompleks dengan Berkesan dalam C# untuk Penyahpepijatan?

Bagaimanakah Saya Boleh Log Objek Kompleks dengan Berkesan dalam C# untuk Penyahpepijatan?

DDD
Lepaskan: 2025-01-06 17:31:49
asal
450 orang telah melayarinya

How Can I Effectively Log Complex Objects in C# for Debugging?

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);
    }
}
Salin selepas log masuk

Dalam Tetingkap Segera, anda kemudian boleh melaksanakan perkara berikut:

var logEntry = ObjectDumper.Dump(myObj);
Salin selepas log masuk

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();
}
Salin selepas log masuk

Lain-lain Pilihan:

  • Log4Net: Pustaka pengelogan popular yang menyokong siri objek tersuai.
  • Serilog: Satu lagi perpustakaan pengelogan yang menawarkan pelbagai pilihan bersiri.
  • Tersuai Pemformatan: Melaksanakan kaedah ToString() tersuai pada objek untuk mengawal format di mana ia dilog.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan