Consider this scenario. I have some business logic that now and then will be required to write to a log.
interface ILogger { void Log(string stuff); } inte
I would prefer Singleton Service.
Dependency injection would clutter the constructor.
If you can use AOP, that would be the best.