我有一个对象类型,例如:
Class
{
public string Variable {get; set;}
public List<AnotherClass> ListVariable {get; set;}
}
AnotherClass
{
public string Variable {get; set;}
public int IntVariable {get; set;}
}
我尝试了几种解决方案(ObjectDumper
, object.GetProperties
)来将所有对象值打印Class
到屏幕上;问题以无法打印结束List<AnotherClass>
。而不是所有的项目,我只得到它的计数属性。
尝试过的解决方案:
还有几个..
编辑:
好的,正如我所看到的,我可能没有很好地描述这个问题。当我不知道对象的类型及其属性时,我需要打印所有对象的属性及其值。如果对象仅包含简单属性,则列出的解决方案可以正常工作。如果其中一个属性是 List<>,则会出现问题
我尝试了以下方法:
1)
private static void PrintObject(Object dataSource)
{
foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(dataSource))
{
string name = descriptor.Name;
object value = descriptor.GetValue(dataSource);
RichTextBox.Text += name + ": " + value + "\n";
PrintObject(control, value);
}
}
给我输出:
检查状态:已执行
文本数据:System.Collections.Generic.List`1[TextDataField]
容量:16
计数:15
但我在这里期待所有 15 个项目值,而不仅仅是列表计数。
2)
RichTextBox.Text = dataSource.DumpToString();
来自http://objectdumper.codeplex.com/
提供几乎相同的输出。