1

C# に事前定義されたオブジェクトがある場合、リフレクションを使用してオブジェクトの構造をループして出力し、次のようにするにはどうすればよいですか。

Class PurchaseOrder
------------------
Property: ID     | Type: Int32
Property: Client | Type: Some.Namespace.Client
+----   Property: FirstName | Type: String
+----   Property: LastName  | Type: String
+----   Property: Address   | Type: Some.Namespace.Address
+----   +----    Property: Line1 | Type: String
Property: Date   | Type: DateTime

オブジェクトの構造を再帰したい (内部の実際のデータは気にせず、プロパティの名前と型だけを気にする)。さらに、それが基本型でない場合は、ツリー (つまり、オブジェクトまたはリスト) を再帰し続けます。

注: パブリック メンバーのみ...

これはなぜかイメージできません。

上記の印刷されたツリーの C# クラスは次のようになります。

class PurchaseOrder {
    public Int32 Id {get;set;}
    public Client Client {get;set;}
    public DateTime Date {get;set;}
}

class Client {
    public string FirstName {get;set;}
    public string LastName  {get;set;}
    public Address Address {get;set}
}

class Address {
    public string Line1 {get;set;}
    ....
}

ただし、理想的には、これはどのタイプでも機能します。

あなたの助けを前もってありがとう:)

4

1 に答える 1

2

ObjectDumperを使用すると、非常に簡単に実行できます。

これは、Microsoft によって作成されたオープンソース ツールであり、オブジェクト プロパティのテキスト/読み取り可能な表現を記述します。これは単純なクラスで、出力形式を変更したい場合に非常に簡単に変更できます。

最も簡単な使用例:

ObjectDumper.Write(purchaseOrder)

使用例はこちらのページをご確認ください。

于 2012-10-12T18:08:16.477 に答える