Can the Factory Patterns (Factory Method,Simple Factory Method and Abstract Factory) or Service Locator Pattern way of fetching the dependency be called Dependency Injection.
My understanding is with this way of instantiating dependency, the high level class still have to know about about the Factory or Service locator.Dependency Injection means the dependency is pushed and not pulled unlike Factory type and the best way to do it is using Inversion of Control containers like NInject,Unity,CastleWindsor etc. Please share your views.
No, they can't.
Dependency injection is a pattern that implements IoC or inversion of control. It implies, that classes should not be tightly coupled to each other and should not know about where to fetch their dependency.
Inversion of control principle is often expressed as "Don't call us, we'll call you" - in this case the classes, managed by IoC container shouldn't know anything about their dependencies and how to fetch them. Factory patterns and service locator implies, that the using class actually knows about the way to fetch that dependency.
UPDATE
Let me also cite Martin Fowler:
http://martinfowler.com/articles/injection.html
Dependency Injection and Service Locator are two opposing ways to program to interfaces, but Dependency Injection solves most problems and challenges far better than the Service Locator anti-pattern.
Abstract Factories can be injected into services that need them, so can be combined with both approaches. They are perpendicular to the discussion, not a variation of Service Locator.