10

방금 ​​설치 한 Visual Studio 2010에서 디버깅을하고 있었으며 빠른보기 창에서 사전을 보려고했습니다. 저는 Keys and Values를 봅니다. 그러나 그것들에 구멍을 뚫는 것은 Count와 Non-Public 멤버들, Non Public 멤버들이 흔적을 계속 보여 주며 사전에 값을 보지 못했음을 보여줍니다. 나는 test를 실행할 수있다. (10 절) 값을 보아라.하지만 왜 그렇게해야만 하는가? 비교하기 위해 VS 2008을 더 이상 설치하지 않았지만 사전을 훨씬 쉽게 디버깅 할 수있는 것 같습니다. 왜 지금이 방법입니까? 내 컴퓨터에서 어떻게 든 설정 한 것입니까?사전 디버그 시각화가 Visual Studio 2010에서 Silverlight 디버깅에 유용하지 않은 이유는 무엇입니까?

테스트 코드 :

Dictionary<string, string> test = new Dictionary<string, string>(); 
    test.Add("a", "b"); 

편집 : 난 그냥 콘솔 응용 프로그램에서 같은 디버그를 시도하고 예상대로 작동합니다. 다른 프로젝트는 Silverlight 4 응용 프로그램입니다. 왜 다른 응용 프로그램입니까?

Console Debug Screen Shot

Silverlight 4 Debug Screen Shot :

편집 : 연결 Microsoft에서 회신 : "이것은 우리의 부분에 생략했다 - 우리가 이전에 비주얼 스튜디오 2008 SP1이 정확한 문제를 해결했지만,이 수정 불행하게도했다 Visual Studio 2010 코드베이스로 포팅되지 않았습니다. 이제이 문제가 다시 해결되었습니다 (이번에는 좋은 소식입니다). VS2010 SP1에서이 픽스를 제공하려고합니다.

Alex Turner Visual Basic 및 C# 컴파일러 "그래서 곧 수정해야합니다.

편집 : SP1에서이 두 번만 선택했는데 올바르게 작동합니다.

+2

내가 한스 옆모습의 답변을 받아 들여 Microsoft에 버그 리포트를 제출했습니다. 우리는 무슨 일이 일어날 지 알 것입니다 : http://connect.microsoft.com/VisualStudio/feedback/details/557741/silverlight-4- 사전 디버깅. – Aligned

+0

그래, 나도 똑같은 문제를 겪고있어. Microsoft는 VS 2010에서 버그를 확인하고 (* 베타가 아니며) SP1에서 수정 될 수 있습니다. –

답변

0

Dictionary 용 디버거 비주얼라이저는 완전히 동일한 동작을하는 동일한 클래스입니다. 여전히 개인 Mscorlib_DictionaryDebugView 클래스입니다. Unexpanded는 Count를 보여주고 확장 된 요소의 배열을 보여줍니다.

코드 스 니펫은 사용자가 완전히 다른 사전 클래스 (일반적이지 않은 클래스)를 사용하고 있음을 나타냅니다.

+0

방금 ​​제 질문을 편집했습니다 ... 형식이 잘못되어 정의의 을 숨겼습니다. – Aligned

+0

맞아, 그럴거야. 귀하의 스 니펫은 실제로 문제를 재현합니까? –

+0

내 업데이트 된 편집을 참조하십시오. 이는 Silverlight 앱과 콘솔 앱의 차이점입니다. – Aligned

4

사전의 내용을 디버거에서 덤프 할 수있는 임시 해결책이 있습니다. 프로젝트는 LINQ의 DLL에 대한 참조를 추가하려면

  1. (예 : System.Core)

  2. 은 소스 파일에 다음 문을 추가

    을 System.Linq를 사용하여; 시계 창에서

  3. 입력 :

    test.Take (1)

  4. 그런 다음 "결과보기"그룹 행을 확장합니다. 이렇게하면 키, 값 쌍의 친숙한 목록을 얻을 수 있습니다.

[이 해결 방법은 버그 557741에 대한 connect.microsoft.com에 rickpastoor에 의해보고]