Simple case:
I have an interface for logging messages, like this:
public interface ILogger
{
void Log(string message);
}
And maybe three different classes implement this interface.
Now, I could write in one place, line for DI, something like:
kernel.Bind<ILogger>().To<ConsoleLogger>();
My question is, how use that interface in many classes, but without injecting everyone via constructor. Because we can have so many different interfaces we want use, and declaration on that class constructor can be messy.
Having too many injected items in your constructor is a code smell. This normally means your class is doing more than one role. The single responsiblity principle says that each class should have only one purpose which is entirely encapsulated in the class.