문제

얼마 전에 Reflection 네임스페이스에 재귀적으로 실행되는 메서드가 있다는 것을 본 기억이 납니다. ToString() 개체의 모든 속성을 관리하고 표시할 수 있도록 형식을 적절하게 지정합니다.

예, 디버거를 통해 내가 원하는 모든 것에 액세스할 수 있다는 것을 알고 있지만 해당 명령을 아는 사람이 있는지 궁금합니다.

도움이 되었습니까?

해결책

내 생각에 당신이 찾고 있는 것은 ObjectDumper라고 합니다.리플렉션을 사용하여 객체의 다양한 속성을 모두 반복하고 출력합니다.저는 LINQ를 배우면서 처음 들어봤고, Linq in Action 책에 있는 대부분의 예제에서 이를 사용했습니다.

Microsoft는 Linq의 최종 버전에 이 코드를 포함하지 않은 것으로 보이지만 코드는 여전히 공개되어 있습니다.구글에서 빠르게 검색해봤는데 링크는 다음과 같습니다.

ObjectDumper 소스 코드

다른 팁

객체와 해당 속성을 덤프하는 예제 코드는 여기에서 찾을 수 있습니다.

http://www.developer.com/net/csharp/article.php/3713886

직접 작성하셔도 됩니다.예를 들어 Newtonsoft의 JSON.net 라이브러리를 사용하여 json으로 직렬화하고 해당 json을 콘솔에 작성합니다.예는 다음과 같습니다.

using Newtonsoft.Json;

static class Pretty
{
    public static void Print<T> (T x)
    {
        string json = JsonConvert.SerializeObject(x, Formatting.Indented);
        Console.WriteLine(json);
    }
}

용법:

Pretty.Print(whatever);

확실히 그런 용도를 볼 수 있지만 .Net에서는 대부분 유형 이름(문자열, 배열 등) 목록만 얻지 않습니까?대부분의 내장 기능에는 미리 작성된 "유용한" ToString() 오버로드가 없습니다. 그렇죠?

다음은 코드 덤퍼와 이를 사용하는 방법을 보여주는 데모 프로젝트가 포함된 링크입니다. 여기에서 다운로드하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top