Visual Studio 디버그 모드에서 개체 값 복사
Visual Studio 디버그 모드에서는 변수 위로 마우스를 가져 가서 값을 표시 한 다음 마우스 오른쪽 버튼을 클릭하여 "복사", "식 복사"또는 "값 복사"를 수행 할 수 있습니다.
변수가 기본 유형이 아닌 객체 인 경우 객체를 확장하고 탐색하기위한 + 부호가 있습니다. 클립 보드에 모든 것을 복사하는 방법이 있습니까?
바로 창에
?name_of_variable
그러면 모든 것이 인쇄되고 원하는 곳에서 수동으로 복사하거나 즉시 창의 로깅 기능을 사용하여 파일에 자동으로 쓸 수 있습니다.
업데이트 : 텍스트로 검색하거나 측면에 저장 한 다음 나중에 객체의 상태를 비교할 수 있도록 값의 중첩 구조를 복사 / 붙여 넣는 방법을 묻고 있다고 가정합니다. 내가 옳다면 OzCode 라는 내가 만든 Visual Studio의 상용 확장 기능을 확인 하고 "검색"및 "비교"기능을 통해 이러한 작업을 훨씬 쉽게 수행 할 수 있습니다.
업데이트 2 @ppumkin의 질문에 대답하거나 새로운 EAP 에는 새로운 내보내기 기능이있어 사용자가 변수 값을 Json, XML, Excel 또는 C # 코드로 내보낼 수 있습니다.
전체 공개 : 저는 여기서 설명한 도구의 공동 제작자입니다.
바로 아래 창에서 아래 코드를 실행할 수 있으며 객체의 직렬화 된 XML 표현을 xml 파일로 내 보냅니다.
(new System.Xml.Serialization.XmlSerializer(obj.GetType())).Serialize(new System.IO.StreamWriter(@"c:\temp\text.xml"), obj)
출처 : Visual Studio에서 디버거에서 개체를 직렬화하는 방법
이 작업을 편리하게 수행하는 최근 확장 Object Exporter가 있습니다.
http://www.omarelabd.net/exporting-objects-from-the-visual-studio-debugger/
확장 : https://visualstudiogallery.msdn.microsoft.com/c6a21c68-f815-4895-999f-cd0885d8774f
정확히 원하는 것이 아니라 해당 객체에 대한 시계를 추가 할 수 있으며, 시계 창에서 복사하려는 모든 항목을 확장하고 선택한 다음 복사하십시오.
사용하여 귀하의 클래스와 메소드를 장식하는 속성을 당신은 디버깅하는 동안 개체 디스플레이에서 특정 값을 가질 수 DebuggerDisplay 속성 예
[DebuggerDisplay("Person - {Name} is {Age} years old")]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
https://stackoverflow.com/a/23362097/2680660의 가장 인기있는 답변 :
운이 좋으면 이미 appdomain에 Json.Net이 있습니다. 이 경우 직접 실행 창에 다음을 입력하십시오.
Newtonsoft.Json.JsonConvert.SerializeObject(someVariable)
Google 은이 8 살짜리 질문으로 이끌었고 ObjectDumper 를 사용하여 복사 붙여 넣기 디버거 데이터와 매우 비슷한 결과를 얻었 습니다 . 산들 바람이었다.
디버거의 정보에 대해 특별히 묻는 질문을 알고 있지만 ObjectDumper는 기본적으로 동일한 정보를 제공합니다. 나는이 질문을 구글 사람들이 나와 같다고 가정하고 디버깅 목적으로 데이터가 필요하고 기술적으로 디버거에서 온 것인지는 상관하지 않는다고 가정합니다.
나는 항상 사용합니다 :
string myJsonString = JsonConvert.SerializeObject(<some object>);
그런 다음 불행히도 백 슬래시도 복사하는 문자열 값을 복사합니다.
백래시를 제거하려면 여기로 이동하십시오 : https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_replace
그런 다음 <p id="demo">Visit Microsoft!</p>요소 내에서 텍스트를 복사 한 텍스트로 바꿉니다. 그런 다음 var res = str.replace("Microsoft", "W3Schools");줄을
var res = str.replace(/\\/g, '')
이 새로운 변경 사항을 실행하되 오른쪽의 "시도"버튼을 반드시 클릭하십시오.
이제 http://jsonformatter.org 와 같은 json 포맷터에 놓거나 POCO를 만들 수있는 json 형식의 객체 텍스트가 모두 http://json2csharp.com/
나는 파티에 조금 늦었다는 것을 알고 있지만 JSON 출력을 원한다면 객체를 직렬화하기위한 JSON 구현을 작성했습니다. Newtonsoft.Json 참조를 사용합니다.
private static void WriteDebugJSON (dynamic obj, string filePath)
{
using (StreamWriter d = new StreamWriter(filePath))
{
d.Write(JsonConvert.SerializeObject(obj));
}
}
목록이 있고 특정 변수를 찾으려면 다음과 같이하십시오. 즉시 창에서
myList.Any(s => s.ID == 5062);
이것이 true를 반환하면
var myDebugVar = myList.FirstOrDefault(s => s.ID == 5062);
?myDebugVar
I've just right clicked on the variable and selected AddWatch, that's bring up watch window that consists of all the values. I selected all and paste it in a text a text editor, that's all.
참고URL : https://stackoverflow.com/questions/2927991/copy-object-values-in-visual-studio-debug-mode
'Programing' 카테고리의 다른 글
| AngularJS-라디오 버튼 선택시 트리거 (0) | 2020.07.23 |
|---|---|
| 이 쿼리로 페이징 (건너 뛰기 / 취소) 기능 구현 (0) | 2020.07.23 |
| iOS의 UITextView에서 텍스트에 대한 탭 감지 (0) | 2020.07.23 |
| 예외 처리기에서 오류가 발생했습니다. (0) | 2020.07.23 |
| CSS를 사용하여 숫자 (소수점, 천 단위 구분 기호 등) 서식 지정 (0) | 2020.07.22 |