I\'m trying to find a good, clean design pattern or commonly accepted implementation to deal with an enumeration of types where the individual type is known only at runtime.
Use the Strategy design pattern:
Define separate converter objects (with a common interface) that encapsulate the different converting algorithms. Clients delegate the converting to the proper converter object at run-time.
This greatly reduces implementation dependencies. Client code is independent of how the converting is implemented.
I agree with @David Osborne's answer. And even if you implement a single converter object with a switch statement, this implementation is encapsulated and hidden from clients.