I just read an awesome article from Brad Wilson (posted to his DotNetDevs site) about implementing the Visitor pattern using Reflection. Man, that was some truly great stuff. A must read. I've been working on something similar in C# 2.0, but going the route of using generics instead. The Reflection route is very interesting but as Brad mentioned, you'd have to use some sort of caching scheme to offset the performance penalties.