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?