Looping through Object's properties in C#
Looping through object's properties in C#
Have you ever tried to make a dynamic test page? To build an HTML element that contains all the properties of a specific .NET object?
Well, I encountered this problem a couple of days ago and while searching Google, I barely found good matches. So I decided that for my sake, and yours, I will simply post a short explanation about how to do it, followed by a quick and simple example of how to loop though object properties in C#.
First I'll provide a short explanation about Reflection:
Reflection enables you to discover an object's properties, methods, events and properties values at run-time. Reflection can give you a full mapping of an object (well, it's public data).
In order to use reflection, and to loop through the object's properties, we'll first have to import the namespace
:
using System.Reflection;
Now, let's say I have an object called User
and this object has 2 public
properties:
UserID
Name
My code will look something like this:
int testID = 123456;
User usr = new User(testID); // this is constructor to get user by ID
StringBuilder sb = new StringBuilder();
PropertyInfo[] properties = user.GetType().GetProperties();
foreach (PropertyInfo pi in properties)
{
sb.Append(
string.Format("Name: {0} | Value: {1}",
pi.Name,
pi.GetValue(user, null)
)
);
}
divResults.InnerText = sb.ToString();
This little piece of code will fill your HTML element with the properties names and values.
Have fun!
Elad.