W bezpośrednim oknie wpisz
?name_of_variable
Spowoduje to wydrukowanie wszystkiego i możesz ręcznie skopiować to w dowolnym miejscu lub użyć funkcji rejestrowania bezpośredniego okna, aby automatycznie zapisać to do pliku.
AKTUALIZACJA : Zakładam, że pytałeś, jak skopiować / wkleić zagnieżdżoną strukturę wartości, abyś mógł przeszukać ją tekstowo lub zapisać ją z boku, a następnie porównać z nią stan obiektu. Jeśli mam rację, możesz chcieć wypróbować komercyjne rozszerzenie programu Visual Studio, które stworzyłem, o nazwie OzCode , które umożliwia znacznie łatwiejsze wykonanie tych czynności dzięki funkcjom „Wyszukaj” i „Porównaj”.
UPDATE 2 Aby odpowiedzieć na pytanie @ ppumkin, lub nowy EAP ma nową funkcję eksportu, która umożliwia użytkownikom eksportowanie wartości zmiennych do kodu Json, XML, Excel lub C #.
Pełne ujawnienie: jestem współtwórcą opisanego tutaj narzędzia.
Możesz uruchomić poniższy kod w bezpośrednim oknie, a wyeksportuje on do pliku xml zserializowaną reprezentację XML obiektu:
Źródło: Visual Studio, jak serializować obiekt z debugera
źródło
Cannot evaluate expression because the code of the current method is optimized.
???File.WriteAllText(@"c:\movie.json", JsonConvert.SerializeObject(movie));
The debugger is unable to evaluate this expression
. Używam Visual Studio 2019; I podstawionyobj
z nazwą zmiennej, która jest typSystem.Collections.Generic.List 1[[System.ValueTuple 3[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7]]
Jest najnowsze rozszerzenie Object Exporter, które robi to wygodnie.
http://www.omarelabd.net/exporting-objects-from-the-visual-studio-debugger/
Rozszerzenie: https://visualstudiogallery.msdn.microsoft.com/c6a21c68-f815-4895-999f-cd0885d8774f
źródło
Możesz dodać zegarek dla tego obiektu, a w oknie obserwatora rozwinąć i wybrać wszystko, co chcesz skopiować, a następnie skopiować.
źródło
Najpopularniejsza odpowiedź z https://stackoverflow.com/a/23362097/2680660 :
źródło
Używając atrybutów do ozdabiania klas i metod , możesz mieć określoną wartość z obiektu wyświetlanego podczas debugowania za pomocą atrybutu DebuggerDisplay, np.
źródło
Google doprowadziło mnie do tego 8-letniego pytania i ostatecznie użyłem ObjectDumper aby osiągnąć coś bardzo podobnego do kopiowania i wklejania danych debuggera. To była bryza.
Znam pytanie zadawane konkretnie o informacje z debuggera , ale ObjectDumper podaje informacje, które są w zasadzie takie same. Zakładam, że ci, którzy wyszukują w Google to pytanie, są tacy jak ja i potrzebują tylko danych do celów debugowania i nie obchodzi mnie, czy technicznie pochodzą one z debuggera, czy nie.
źródło
Zawsze używam:
Następnie kopiuję wartość ciągu, która niestety kopiuje również tylne ukośniki.
Aby usunąć backlashes, przejdź tutaj: https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_replace
Następnie w
<p id="demo">Visit Microsoft!</p>
elemencie zastąp tekst skopiowanym tekstem. następnie zamieńvar res = str.replace("Microsoft", "W3Schools");
wiersz naUruchom te nowe zmiany, ale nie zapomnij kliknąć przycisku „wypróbuj” po prawej stronie.
Teraz powinieneś mieć cały tekst obiektu w formacie json, który możesz upuścić w programie formatującym json, takim jak http://jsonformatter.org lub aby utworzyć POCO, możesz teraz użyć http://json2csharp.com/
źródło
Wiem, że jestem trochę spóźniony na imprezę, ale napisałem implementację JSON do serializacji obiektu, jeśli wolisz mieć wyjście JSON. Używa odwołania do Newtonsoft.Json.
źródło
jeśli masz listę i chcesz znaleźć określoną zmienną: W najbliższym oknie wpisz
jeśli zwraca prawdę
źródło
Po prostu kliknąłem zmienną prawym przyciskiem myszy i wybrałem AddWatch , co spowoduje wyświetlenie okna zegarka, które zawiera wszystkie wartości. Wybrałem wszystko i wkleiłem go do tekstu w edytorze tekstu, to wszystko.
źródło