C#에서 복잡한 개체 로깅
코드를 디버깅할 때 런타임에 개체의 상태를 보는 것이 도움이 되는 경우가 많습니다. Visual Studio의 직접 실행 창은 ? 구문을 사용하여 개체의 서식이 지정된 내용을 표시하는 편리한 방법을 제공합니다. objectname.
로깅 목적으로 코드 내에서 이를 달성하려면 고려해야 할 몇 가지 접근 방식이 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!