Sí:
Type type = typeof(Form); // Or use Type.GetType, etc
foreach (PropertyInfo property in type.GetProperties())
{
// Do stuff with property
}
Esto no les dará como pares clave/valor, pero se puede obtener todo tipo de información de una PropertyInfo
.
Tenga en cuenta que esto solo dará propiedades públicas. Para los que no son públicos, querrás usar la sobrecarga que toma un BindingFlags
. Si realmente quiere sólo pares nombre/valor para las propiedades de instancia de un caso particular, usted podría hacer algo como:
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);
}
Gracias Jon, funcionó perfecto. – SLoret