How to use Dependency Injection in multilevel class hierarchy? For example :-
public class ModuleClassViewModel
{
ModulePageClassServiceRepository _modulePageClassServiceRepository = null;
public ModuleClassViewModel(ModulePageClassServiceRepository modulePageClassServiceRepository)
{
_modulePageClassServiceRepository = modulePageClassServiceRepository;
}
public IList<ModulePageClassObject> ModuleClassPageHierarchy(int? modulePageClassID, string SecureKey)
{
return _modulePageClassServiceRepository.ModuleClassPageHierarchy(....);
}
}
and code for ModulePageClassServiceRepository is.......
public class ModulePageClassServiceRepository : IModulePageClassService
{
ServiceDAO _serviceDAO = null
public ModulePageClassServiceRepository(ServiceDAO serviceDAO )
{
serviceDAO = serviceDAO ;
}
public IList<ModulePageClassObject> ModuleClassPageHierarchy(ModuleClassPageHierarchyParameter moduleClassPageHierarchyParameter)
{
// call serviceDAO and return result
}
}
now as per DI if we want to use ModuleClassViewModel then we first need to inject ModulePageClassServiceRepository object and for ModulePageClassServiceRepository we need serviceDAO .... this hierarchy can grow to multiple level.... assume in Test class....
public class TestDI
{
public void TestMethod()
{
ServiceDAO objServiceDAO = new ServiceDAO();
ModulePageClassServiceRepository objModulePageClassServiceRepository = new ModulePageClassServiceRepository (objServiceDAO );
ModuleClassViewModel objModuleClassViewModel = new ModuleClassViewModel(objModulePageClassServiceRepository );
//call method of objModuleClassViewModel
}
}
Is this correct way to use dependency injection. here I need to first initialize complete hierarchy so my question is - Do I need to first initialize this complete hierarchy....or is there any other way to call ModuleClassViewModel class ???