Went down this path already.<p>It was OK for a while with a small codebase, but the problem is that you need to give up your simple direct Go code for magic reflection.<p>I discovered there are better and more idiomatic ways to do this type if thing without resorting to dependency injection.
"Typically the main() function would call the various init functions like InitMongoService"<p>Why muddy your main() when init() exists?<p>See: <a href="http://golang.org/ref/spec#Package_initialization" rel="nofollow">http://golang.org/ref/spec#Package_initialization</a>
I'm interested in real examples of dependency injection being useful outside of hooking up testing objects. Anyone got any links to interesting examples?