I'm trying to iterate over the Color class' Color properties.
Unfortunately its not in a collection so its just a class with a bunch of static properties.
Does anyone know if its possible to iterate over a class' properties be it static or object based?
Yes, it's possible using reflection. Specific colors are defined as a static properties of the Color struct
.
PropertyInfo[] colors = typeof(Color).GetProperties(BindingFlags.Static|BindingFlags.Public);
foreach(PropertyInfo pi in colors) {
Color c = (Color)pi.GetValue(null, null);
// do something here with the color
}
You might also be interested in this code
http://blog.guymahieu.com/2006/07/11/deep-reflection-of-properties-propertyreflector/
It provides an easy way to set/get properties by name. If you look into GetBestMatchingProperty you'll find the iteration over properties, that is done the same way as been posted before
Iterating over class properties