如果我有在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;}
....
}
然而,理想的情況是任何類型的工作。
在此先感謝您的幫助:)
那麼你堅持什麼部分?怎麼樣的領域或方法? –
@JeffreyKevinPry你不一定需要這個問題的遞歸。你也可以迭代地解決它。如果你首先做到這一點,那麼你應該至少靠近看到可能成爲遞歸的算法部分。 –
不會遞歸是完成這個最優雅的方法嗎? –