Reflection is slow!
But than again you probably knew that already if you have done any work with reflection. But Stephen Erisman got creative with the problem and tried generating dynamic IL at runtime to solve the problem. And guess what it works and not a bit faster but a lot :-)
So if you find yourself doing a lot of the following:
PropertyInfo pi = someObject.GetType().GetProperty("SomeProperty");
object value = pi.GetValue(someObject, null);
you really should take a look at his article
at the Code Project and try it. In my case the performance boost was almost 100 fold!
Thanks to Scott Hanselman's show