ToString()
少し前に、Reflection名前空間に、オブジェクトのすべてのプロパティで再帰的に実行され、表示用に適切にフォーマットされる メソッドがあることを覚えています。
はい、デバッガーを介して必要なものすべてにアクセスできることはわかっていますが、誰かがそのコマンドを知っているかどうか疑問に思っていますか?
ToString()
少し前に、Reflection名前空間に、オブジェクトのすべてのプロパティで再帰的に実行され、表示用に適切にフォーマットされる メソッドがあることを覚えています。
はい、デバッガーを介して必要なものすべてにアクセスできることはわかっていますが、誰かがそのコマンドを知っているかどうか疑問に思っていますか?
あなたが探しているのは ObjectDumper と呼ばれるものだと思います。リフレクションを使用して、オブジェクトのさまざまなプロパティをすべて繰り返し処理し、出力します。私は LINQ を学んでいるときに初めてそれについて知りました。Linq in Action ブックのほとんどの例でそれが使用されています。
ただし、Microsoft は Linq の最終バージョンにそれを含めていないようですが、コードはまだ出回っています。私はそれをグーグルで簡単に検索しましたが、ここにリンクがあります:
オブジェクトとそのプロパティをダンプするサンプル コードは、次の場所にあります。
自分で書くことができます。たとえば、Newtonsoft の JSON.net ライブラリを使用して json にシリアル化し、その json をコンソールに書き込みます。以下に例を示します。
using Newtonsoft.Json;
static class Pretty
{
public static void Print<T> (T x)
{
string json = JsonConvert.SerializeObject(x, Formatting.Indented);
Console.WriteLine(json);
}
}
使用法:
Pretty.Print(whatever);
私は確かにそのような用途を見ることができましたが、.Net では、ほとんどの場合、型名 (文字列、配列など) のリストを取得するだけではありませんか? ほとんどのビルトインには、「便利な」ToString() オーバーロードが事前に記述されていませんよね?
これは、コード ダンパーとその使用方法を示すデモ プロジェクトへのリンクです。ここからダウンロードしてください。