2009-12-11 3 views
1

특정 변수의 값이 C# .NET 스크립트에 있는지 확인하려고합니다 (XML 파일을 가져 와서 여러 노드를 추출하고 일부 유형의 정렬 필터를 작성하고 필터를 적용하고 결과를 가져오고 삭제합니다 몇 가지 일들을 반복 한 다음 결과를 반복합니다). 그래서 나는 PHP에서 동일한 일을하기 위해 스크립트가 어디에서 일어나고 변환되는지를 알아낼 수 있습니다..NET C#에서 변수 값보기?

PHP에서 나는 단지 var_dump($someData); 또는 echo $thePath을 할 것입니다. .NET (C#)에서 어떻게이 작업을 수행합니까? 스크립트에서

같은 것들이있다 : 앞으로 너무

XmlDocument someData = new XmlDocument(); 
string thePath = Server.MapPath("some.xml"); 
someData.Load(thePath); 

XPathNodeIterator iterator = navigator.Select(stuff); 

및하지만 난 항상 이런 일이 내 말은 (무엇을하고 있는지 모른다, 나는 알고있다 XML 문서가로드되고 일부가 반복되도록 선택되었지만 스크립트를 통해 이동하면서 다양한 변수 값이 무엇인지 검사 할 수 있어야합니다. Visual Studio에 액세스 할 수있는 권한이 없습니다 ... 기본 텍스트 편집기 및 브라우저 만 사용하십시오.

+2

웹 응용 프로그램, 콘솔 또는 winforms입니까? 대답은 그에 따라 다릅니다. –

+0

훨씬 더 큰 웹 응용 프로그램에서 하나의 스크립트입니다. – Lothar

+0

실제로 스크립트는 jQuery (ajax 요청)를 통해 액세스 한 다음 파싱 된 일부 XML을 전달하고 jQuery 플러그인은 데이터를 준비한 다음 HTML 페이지에 표시합니다. PHP에서는 var_dump ($ meh)를 붙잡고 종료 할 수 있습니다. html 페이지는 var_dump를 표시 할 것입니다 ... Response.Write는 불행히도 나를 위해 이런 방식으로 작동하지 않습니다. 또는 스크립트에 무작위로 붙이고 브라우저 화면에 필요한 것을 얻을 수 있습니다. – Lothar

답변

2

jvenema 바로 - 당신은 비주얼 스튜디오에 액세스 할, 당신은 단지 그것을 알고하지 않습니다 (당신이 당신의 컴퓨터에 소프트웨어를 설치할 수있는 권한이없는 경우가 아니라면) - 급행 버전은 무료입니다.

그러나, 기다릴 필요가없고 변수 값을 표시하도록 페이지를 수정하는 데 신경 쓸 필요가없는 경우 게릴라 디버깅을 위해 어디서든 넣을 수 있습니다 (ASP를 사용하는 것처럼 들리므로 .NET) :

Response.Write(variable); 

코드에서이 작업을 수행 할 위치에 따라, 그것은 아마 볼 수있는 HTML 내부에 착륙하지 않으며, 심지어 깨진 HTML 출력을 생성 할 수도 있습니다. 그러나 브라우저에서 페이지 소스를 보면 해당 페이지 소스를 볼 수 있습니다. 상기 아마도

// 'protected' so you can access it from your aspx page template. 
protected string debugValues = string.Empty; 

// Inside your page's code, do this with any variable you want to see: 
this.debugValues += "variable=" + variable; 

그런 다음, 영문 페이지 템플릿에, 그냥 좋은 장소를 선택 :

더 좋은 방법은 당신이 당신의 디버그 데이터를 추가 할 수있는 페이지 수준의 문자열 변수를 선언 할 수 있습니다 페이지의 하단하지만, 볼 HTML 출력 내에서 바로 가기 인합니다 (<퍼센트 = %> 구문을 사용하여 :

<body> 
    // ... The rest of your page here ... 
    <%= this.debugValues %> 
</body> 
+0

페이지에서이 부분을 지키지 않아도 아무 것도 없습니다. 나는 Response.Write ("test")를 시도했다. 뿐만 아니라 아무것도하지 않았다. – Lothar

+0

업데이트에 대한 추가 정보가 있습니다. –

+0

제프 (그리고 다른 모든 사람들)에게 감사드립니다. jvenema의 제안에 따라 Visual Studio Express 복사본을 다운로드 한 다음 귀하와 다른 사람들이 제안한대로 Response.Write를 사용할 수있었습니다 (내 용도로 볼 때 원본은보기에 좋음). 어떤 이유로 원격 서버에서는 작동하지 않지만 로컬에서는 VS Express를 사용하여 완벽하게 작동합니다. 감사. – Lothar

14

Visual Studio Express 사본을 잡고 내장 된 디버거를 사용하십시오. 너의 인생은 훨씬 쉬울거야.

+4

언급 할만한 가치가있는 것은 : 무료입니다. –

+0

WinForms/WPF와 웹용으로 다른 버전이 있습니다. – ChrisF

2

'debug by stdout'경로를 사용하는 경우 .NET에서 Debug Class을 사용할 수 있습니다. Console Class도 잘 작동하며 조금 더 간단 할 수 있습니다.

2

변수의 값을 출력하려고한다면 이것을 시도하십시오. 그것은 경고처럼 행동해야합니다. 그렇게하지 않으면 명령 행 응용 프로그램으로 변환 할 필요가 없습니다. 표준 Windows 라이브러리가있는 한 작동해야합니다.

MessageBox.show(thePath) 
+0

이 특정 스크립트가있는 페이지 중간에 서버를 업로드했는데 아무것도하지 않았습니다. 나는 .NET에 대해 아무 것도 모른다. 그래서 이것은 놀랄 일이 아니다. – Lothar

+0

사실, 나는 당신이 웹 사이트에서 일하고 있다는 것을 알지 못했다. 나는 창문 애플 리케이션을 생각하고 있었다, 미안. 하지만, @Aric TenEyck는 ASP.NET에서 작동해야합니다. – user48202

2

당신은 무료로 비주얼 스튜디오는 명시 적 또는 모노 개발 사용하지 않으려면 , DebugView 및 usi 사본을 가져 오는 것이 좋습니다. Trace.Write 및 Debug.Write를 사용하십시오.

3

웹 응용 프로그램의 경우 Response.Write("text to write");을 수행하십시오.

+0

나는 스크립트에서 그것을 붙 였고 아무 것도하지 않았다. 그것은 스크립트가 정상적으로 가지고있는 데이터를 반환하지 못하게했지만 실제로 아무 것도 쓰지 않았습니다. – Lothar

1
System.Debug.WriteLine(someData); 
관련 문제