Итерации через поля классов и печать их

Если у меня есть, например, один класс, например

public class User{
            public int Id { get; set; }
            public int Reputation { get; set; }
            public string DisplayName { get; set; }
            public DateTime LastAccessDate { get; set; }
            public DateTime CreationDate { get; set; }
            public string WebSiteUrl { get; set; }
            public int Views { get; set; }
            public int Age { get; set; }
            public int UpVotes { get; set; }
            public int downVotes { get; set; }
            public string Location { get; set; }
            public string AboutMe { get; set; }
    }

И я хочу динамически перебирать эти поля, например, к некоторому методу, который будет проверять переданный объект, и он вернется к вызывающим его полям.

Возможно ли это?

Ответы

Ответ 1

Они не поля, а свойства. Вы можете использовать отражение, чтобы перечислить их:

User user = ...
foreach(PropertyInfo prop in typeof(User).GetProperties())
{
    Console.WriteLine("{0} = {1}", prop.Name, prop.GetValue(user, null));
}