在 C# 中記錄複雜物件
偵錯程式碼時,在運行時查看物件的狀態通常會很有幫助。 Visual Studio 的立即視窗提供了一種使用語法 ? 顯示物件的格式化內容的便利方法。
要在程式碼中實現此目的以進行日誌記錄,可以考慮以下幾種方法:
JSON 序列化:
一種有效的方法轉儲大型物件圖正在使用JSON 序列化。這可以使用Newtonsoft.Json 函式庫來完成:
using Newtonsoft.Json; public static class ObjectDumper { public static string Dump(object obj) { return JsonConvert.SerializeObject(obj); } }
在立即視窗中,您可以執行以下指令:
var logEntry = ObjectDumper.Dump(myObj);
要視覺化JSON 結構,請展開logEntry「局部展開」視窗中輸入值,然後從放大鏡旁的下拉插入符號中選擇「Json視覺化工具」選項icon.
Reflection 和ToString():
另一種方法是使用Reflection 來存取物件的屬性和值,並手動將它們轉換為字串表示形式:
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(); }
其他選項:
以上是如何有效地記錄 C# 中的複雜物件以進行偵錯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!