Same here.
Either use XNA's component concept and query your services in Initialize() (or LoadContent() or when needed if you wish, just not in the constructor),
or use dependency injection and add the required services as parameters to your component's constructor, any optional services as properties. Personally, I'm using
Ninject with
some tricks to make it work even before the Game class' constructor runs.
Most Inversion of Control containers provide their own implementation of the
IServiceContainer interface, so it even integrates well with normal GameComponents if said components don't use XNA's own (slightly flawed due to the reference to the Game class) GameComponent but implement IUpdateable and optionally IDrawable themselves (I have written
my own Component and DrawableComponent classes as did one of our MVPs around here, would have provided a link if I could only find it).
Check out my
website and
blog for some interesting articles and useful utility classes!
Nuclex Framework:
threaded particles,
skinnable GUI,
vector fonts,
texture atlasses and lots more.
WiX XNA Installer: Professional-looking MSI installer template for XNA games.