I'm working on a C# project right now - I'm new to C#, I'm pretty familiar with Java. We're working with a C# project that we're hoping to refactor to make it easier to work with. It's a database driven app, and we have this problem where we're always passing around database, logging and configuration object references, and it's a bit of a pain to get a hold of those objects when you need them. What are good ways to do this in C#? I was thinking either some kind of singleton object or use a naming service, like JNDI.