Is there any way to discover at runtime which subclasses exist of a given class?
Edit: From the answers so far I think I need to clarify a bit more
Another approach was just published by Matt Gallagher on his blog.