私は例えばのオブジェクトタイプを持っています:
Class
{
public string Variable {get; set;}
public List<AnotherClass> ListVariable {get; set;}
}
AnotherClass
{
public string Variable {get; set;}
public int IntVariable {get; set;}
}
すべてのオブジェクト値を画面に出力するために、いくつかの解決策 ( ObjectDumper
、 ) を試しました。この問題は、印刷できないという結論に達します。すべてのアイテムの代わりに、count プロパティのみを取得します。object.GetProperties
Class
List<AnotherClass>
試した解決策:
リフレクションを使用してオブジェクトのプロパティの値を再帰的に出力する方法
そしてさらにいくつか..
編集:
わかりました、私はおそらく問題をうまく説明していませんでした。オブジェクトのタイプとそのプロパティがわからない場合、すべてのオブジェクトのプロパティとその値を出力する必要があります。オブジェクトに単純なプロパティのみが含まれている場合、リストされているソリューションは正常に機能します。プロパティの 1 つが 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);
}
}
出力が得られます:
CheckStatus: 実行済み
TextData: System.Collections.Generic.List`1[TextDataField]
定員:16名
カウント: 15
しかし、リストの数だけでなく、ここで 15 項目の値すべてを期待していました。
2)
RichTextBox.Text = dataSource.DumpToString();
http://objectdumper.codeplex.com/から
ほとんど同じ出力が得られます。