public class Foo
{
public string Bar {get; set;}
}
How do I get the value of Bar, a string property, via reflection? The following code will throw an exception if the PropertyInfo type is a System.String
Foo f = new Foo();
f.Bar = "Jon Skeet is god.";
foreach(var property in f.GetType().GetProperties())
{
object o = property.GetValue(f,null); //throws exception TargetParameterCountException for String type
}
It seems that my problem is that the property is an indexer type, with a System.String.
Also, how do I tell if the property is an indexer?