Lets say I have some random .cs file containing a class with some properties and methods of all sorts.
How can I iterate the names (as strings) of all these public s
private string[] GetPublicStringProperties()
{
return this.GetType()
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.Where(pi => pi.PropertyType == typeof(string))
.Select(pi => pi.Name)
.ToArray();
}
You can use the GetProperties method of Type:
GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
This will give you an array of PropertyInfo objects, one for each property.
You can check the property is a string
property by checking that:
property.PropertyType == typeof(string)
To get the names of the properties use property.Name
.
var publicStringProperties =
from property in GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance)
where property.PropertyType == typeof(string)
select property.Name;