Отражение; для экземпляра:
obj.GetType().GetProperties();
для типа:
typeof(Foo).GetProperties();
, например:
class Foo {
public int A {get;set;}
public string B {get;set;}
}
...
Foo foo = new Foo {A = 1, B = "abc"};
foreach(var prop in foo.GetType().GetProperties()) {
Console.WriteLine("{0}={1}", prop.Name, prop.GetValue(foo, null));
}
После обратной связи ...
null
в качестве первого аргумента в GetValue
GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)
(который возвращает все свойства public / private экземпляра). Ответы - это массив, поэтому вы должны явно указать, какую позицию массива вы хотите получить. question.Answers[0].answerSummary