5

코드에 System.Collections.Generic.Dictionary 개체가 있고 Visual Studio 디버거의 중단 점에서 중지 된 동안 내용을 보려고합니다. 물론 .NET의 Dictionary 클래스에는 키와 값의 목록이 포함되어 있습니다.Visual Studio 디버거에서 사전 내용을 볼 수 없습니다.

로드 된 객체를 마우스 오른쪽 버튼으로 클릭하고 내용을 자세히 살펴 보려면 무한 루프가되는 것 같습니다. 예를 들어, 포함 된 키를 보려고하면 Keys 요소를 확장하고 "비공개 멤버"라고하는 다른 컬렉션을 표시합니다. 후자를 확장하고 Keys 요소가있는 또 다른 사전 객체를 얻습니다. 확장 할 수있는 "개수"및 "비공개 구성원"의 다른 인스턴스를 확장 할 수 있습니다. 예 :

Dictionary expansion in Visual Studio debugger

QuickWatch를 사용하면 동일한 결과를 얻을 수 있습니다. 따라서 실제로 개체에 포함 된 키를 어떻게 볼 수 있습니까?

+0

이 버그를 생성하는 코드의 최소 예가 있습니까? 사전을 보면 VS2010에서 몇 가지 항목을 추가하는 사전을 사용하여 잘 작동합니다. 게시 한 스크린 샷을 기반으로 dctLoadedRows에 아무 것도 추가되지 않았습니다. 또한 마우스 오른쪽 버튼을 클릭하면 일반적으로 상황에 맞는 메뉴가 표시되며 드릴 다운 할 수 없습니다. – iheanyi

+0

@iheanyi - 이미지가 실제 스크린 샷입니다 (확장 왼쪽에있는 코드가 잘립니다.) 디버거는 코드의 해당 줄 중 하나에서 중지됩니다. Visual Studio에서는 개체가 여전히 범위 내에있는 한 코드의 모든 참조에서 개체를 확장 할 수 있습니다. 이것은 VS 2010입니다.이 경우 SSIS의 스크립트 작업입니다. 개체를 마우스 오른쪽 버튼으로 클릭하면 확장의 맨 윗줄을 볼 수있는 것처럼 "dctLoadedRows Count = 17"왼쪽에있는 확장 버튼이있는 대화 상자가 나타납니다. – Buggieboy

+1

다른 사람들은 VS2010에서이 디버깅 Silverlight 및 WCF 서비스를 경험했습니다. 이 상황에 처한 적이 있습니까? 아니면이 것이 "일반"VS 응용 프로그램입니까? https://social.msdn.microsoft.com/Forums/vstudio/en-US/8c8d5f10-502c-43f5-a2ba-c1c0acfb8315/visual-studio -2010-c-do-down-into-collections-see- data? forum = vsdebug – iheanyi

답변

2

이 문제점은 이후 버전의 Visual Studio에서 수정 된 것 같습니다. 그러나 이전 버전의 VS에 머물러있는 우리 중 일부는 사전의 키를 빠르게 볼 수 있습니다.

사전에 'dict'라는 사전이 있다고 가정 해 보겠습니다. 값을보기 위해서는 키가 필요합니다. 그래서 시계 창에서이 작업을 수행 : 당신이 목록에 드릴 다운 키를 볼 수 있습니다

dict.Keys.ToList()

합니다.

dict.Keys.ToList()[1]

이 지금 1

해당 키를 받아 볼 수있는 인덱스의 키가 표시됩니다 : 당신은 키의 인덱스를 알고 있다면

당신은 당신이 다음을 수행 원하는 어떤 값이 함께 : 물론

dict[dict.Keys.ToList()[1]]

당신이 키에 인덱스를 대체 할 수있다 다른 워치 라인에 실제 키 값이있는 목록을 추가하십시오.

편집 : 또한 , 시계 창에서 다음과 같이 사전의 항목을 볼 수도 있습니다 :

'dict.entries'

이렇게하면 항목의 목록을 제공합니다 보면서. 각 항목에는 '키'및 '값'속성이 있습니다.

관련 문제