In my app I am using Unity container(through ServiceLocator) with constructor injection.
I have following class structure:
class Main
{
void Main()
{
var c = ServiceLocator.Container.Resolve<C>(new ParameterOverrides { { "somedate", somedate } }, new ParameterOverrides { { "someRates", someRates } });
var b = ServiceLocator.Container.Resolve<B>(new ParameterOverrides { { "c", c } }, new ParameterOverrides { { "somePara", somePara } });
}
}
class A
{
private B _b;
public A(B b)
{
_b = b;
}
}
class B
{
private C _c;
public B(C c, string somePara)
{
_c = c;
}
}
class C
{
public C(DateTime somedate, IDictionary<string, double> someRates)
{
}
}
Now you can see I have to call Resolve method and pass ParameterOverrides. When the parameters and Resolve calls increases the main method becomes messy, like if C also expects some other class instances or parameters and so on. Please suggest best practices to refactor this.
Thanks in advance!!!