Yup:
Type type = typeof(Form); // Or use Type.GetType, etc
foreach (PropertyInfo property in type.GetProperties())
{
// Do stuff with property
}
Nie da je jako pary klucz/wartość, ale można dostać wszelkiego rodzaju informacji z PropertyInfo
.
Należy pamiętać, że spowoduje to tylko publiczne właściwości. W przypadku niepublicznych należy użyć przeciążenia, które ma wartość BindingFlags
. Jeśli naprawdę chcesz po prostu wymienić/par wartości dla właściwości instancji konkretnej instancji, można zrobić coś takiego:
var query = foo.GetType()
.GetProperties(BindingFlags.Public |
BindingFlags.Instance)
// Ignore indexers for simplicity
.Where(prop => !prop.GetIndexParameters().Any())
.Select(prop => new { Name = prop.Name,
Value = prop.GetValue(foo, null) });
foreach (var pair in query)
{
Console.WriteLine("{0} = {1}", pair.Name, pair.Value);
}
Dzięki Jon, pracował idealnie. – SLoret