回答:
直接ウィンドウで、次のように入力します
?name_of_variable
これによりすべてが印刷され、必要な場所に手動でコピーしたり、イミディエイトウィンドウのログ機能を使用してファイルに自動的に書き込むことができます。
更新:ネストされた値の構造をコピー/貼り付けしてテキストで検索したり、横に保存してオブジェクトの状態を後で比較したりできるようにする方法を尋ねていたと思います。私がそうだとすれば、私が作成したVisual StudioのOzCodeと呼ばれる商用の拡張機能をチェックするとよいでしょう。
更新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)
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
。私はVisual Studio 2019を使用しています。obj
タイプである変数名に置き換えましたSystem.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]]
これを便利に行う最近の拡張Object Exporterがあります。
http://www.omarelabd.net/exporting-objects-from-the-visual-studio-debugger/
拡張:https : //visualstudiogallery.msdn.microsoft.com/c6a21c68-f815-4895-999f-cd0885d8774f
そのオブジェクトのウォッチを追加し、ウォッチウィンドウで、コピーするすべてを展開して選択してからコピーします。
https://stackoverflow.com/a/23362097/2680660からの最も人気のある回答:
運が良ければ、Json.Netはすでにappdomainにあります。その場合、これをイミディエイトウィンドウにポップします。
Newtonsoft.Json.JsonConvert.SerializeObject(someVariable)
使用することにより、あなたのクラスやメソッドを飾るために属性をあなたがデバッグ中に、あなたのオブジェクト表示から特定の値を持つことができDebuggerDisplay属性など
[DebuggerDisplay("Person - {Name} is {Age} years old")]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
グーグルが私をこの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, '')
これらの新しい変更を実行しますが、右側の[お試しください]ボタンをクリックすることを忘れないでください。
今、あなたはあなたのようなJSONフォーマッタにドロップできることをJSON形式でオブジェクトのすべてのテキストを持っている必要がありhttp://jsonformatter.orgまたはあなたが今使用することができますPOCO作成する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));
}
}
変数を右クリックしてAddWatchを選択しただけで、すべての値で構成されるウォッチウィンドウが表示されます。私はすべてを選択し、それをテキストエディターに貼り付けました。