15

ToString()少し前に、Reflection名前空間に、オブジェクトのすべてのプロパティで再帰的に実行され、表示用に適切にフォーマットされる メソッドがあることを覚えています。

はい、デバッガーを介して必要なものすべてにアクセスできることはわかっていますが、誰かがそのコマンドを知っているかどうか疑問に思っていますか?

4

5 に答える 5

8

あなたが探しているのは ObjectDumper と呼ばれるものだと思います。リフレクションを使用して、オブジェクトのさまざまなプロパティをすべて繰り返し処理し、出力します。私は LINQ を学んでいるときに初めてそれについて知りました。Linq in Action ブックのほとんどの例でそれが使用されています。

ただし、Microsoft は Linq の最終バージョンにそれを含めていないようですが、コードはまだ出回っています。私はそれをグーグルで簡単に検索しましたが、ここにリンクがあります:

ObjectDumper ソース コード

于 2008-09-18T15:54:49.290 に答える
4

オブジェクトとそのプロパティをダンプするサンプル コードは、次の場所にあります。

http://www.developer.com/net/csharp/article.php/3713886

于 2008-09-18T15:50:05.447 に答える
3

自分で書くことができます。たとえば、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);
于 2016-12-08T06:47:52.993 に答える
0

私は確かにそのような用途を見ることができましたが、.Net では、ほとんどの場合、型名 (文字列、配列など) のリストを取得するだけではありませんか? ほとんどのビルトインには、「便利な」ToString() オーバーロードが事前に記述されていませんよね?

于 2008-09-18T15:47:58.790 に答える
0

これは、コード ダンパーとその使用方法を示すデモ プロジェクトへのリンクです。ここからダウンロードしてください

于 2008-09-18T16:48:34.667 に答える