Instead of hard coding all these possible provider cases, would it not be better to provide an API that the various providers could use to register themselves? Your Activator could then use that API and would not need to have that static hack.