C# – Obtendo os valores de todas as propriedades de um objeto

Tinha esquecido desse snippet. Com certeza ajuda, principalmente na depuração de aplicações.

Quando precisar saber os valores de todas as propriedades de um objeto, ao invés de sair destacando uma por uma, a rotina abaixo devolve os valores das propriedades de um determinado objeto, passado por parâmetro:

public static Dictionary<string, object> getPropertyValues(object o)
{
	Dictionary<string, object> propertyValues = new Dictionary<string, object>();
	Type ObjectType = o.GetType();
	System.Reflection.PropertyInfo[] properties = ObjectType.GetProperties();
	foreach (System.Reflection.PropertyInfo property in properties)
	{
		propertyValues.Add(property.Name, property.GetValue(o, null));
	}
	return propertyValues;
}

O código retorna um Dictionary, onde a string é o nome da propriedade e o object, seu valor. Inevitavelmente, é preciso o uso de Reflection para obter tais informações, o que provavelmente o leitor já esperava, certo? Daí para frente é só utilizar como bem entender.

Bom proveito.

Comentários

comentários