Question: Strategy pattern and Dependency Injection both allow us to set / inject objects at run time. What is the difference between Strategy pattern and Dependency Injection?

Answer: 
Dude, dependency injection is a more general pattern, and it's about dependency on abstractions not concretions and it's a part of every pattern, but Strategy pattern is a solution to more specific problem

this is the definition from wikipedia:

DI:

> 
> Dependency injection (DI) in
>  object-oriented computer programming
>  is a design pattern with a core
>  principle of separating behavior from
>  dependency resolution. In other words:
>  a technique for decoupling highly
>  dependent software components.
> 
> 
> 

Strategy Pattern:

> 
> In computer programming, the strategy
>  pattern (also known as the policy
>  pattern) is a particular software
>  design pattern, whereby algorithms can
>  be selected at runtime.
> 
> 
> The strategy pattern is intended to
>  provide a means to define a family of
>  algorithms, encapsulate each one as an
>  object, and make them interchangeable.
>  The strategy pattern lets the
>  algorithms vary independently from
>  clients that use them.
> 
> 
>
Strategy is an arena to use your dependency injection skills.
Real ways to implement dependency injection are as follows:-

1. Events
2. Configuration files of unity/structure map(or programmatically) etc.
3. Extension Methods
4. Abstract Factory pattern
5. Inversion of control pattern(used by both strategy and Abstract Factory)

There is one thing though that makes strategy stands apart. As you know in Unity when the application starts up all dependencies are set and we can't change it further. But strategy supports runtime dependency change. But WE have to manage/inject the dependency, not the responsibility of Strategy!

Actually strategy does not talk about dependency injection. If needed it can be done through Abstract Factory inside a Strategy pattern. Strategy only talks about creating a family of classes with interface and 'playing' with it. While playing, if we find the classes are in a different tier then we have to inject it ourselves but not the job of Strategy.