如果我有在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你不一定需要这个问题的递归。你也可以迭代地解决它。如果你首先做到这一点,那么你应该至少靠近看到可能成为递归的算法部分。 –
不会递归是完成这个最优雅的方法吗? –