Hi guys,
Got a DI question:
Say I have a class that has the following constructor:
public MyClass(IAnInterface a, IAnother b, IYetAnother c)...
In my startup.cs I have:
services.AddTransient<IAnInterface, AnInterfaceImplementation>();
...
That all works fine. DI will inject the correct implementations for each of
the interfaces in the constructors parameters.
BUT, now I want to be clever because the parameter list is growing too big
(forget SRP, this is a thought experiment). So I create:
public interface IHoldAllInterfaces{
IAnInterface AnInterface {get;}
...
}
Now MyClass just takes one parameter, the IHoldAllInterfaces
implementation, which internally has all of the other interfaces.
Is there a way that I can get MVC DI to resolve IHoldAllInterfaces so that
at runtime it will pass in an object that holds all of the internal
interfaces already resolved per the startup.cs file?
I hope this makes sense - I'm not very good at writing questions clearly
*and* concisely :)
Cheers
David