What is DIVEX?

DIVEX is a dependency injection tool that allows you to compose objects and functions in C# in a way that makes your code more maintainable.

  1. It has both the advantages of using a Dependency Injection container and the advantages of not using a Dependency Injection container (using Pure DI). Before DIVEX, you had to compromise.
  2. You can construct whole object graphs (or functions) without injecting impure dependencies. You can delay the injection of impure dependencies to the last possible moment. This helps a lot with testing.
  3. Pass data (and behavior) from any level of the call stack to any other level without polluting the signatures of your functions. Before DIVEX, you had to use global state to do this.
  4. It makes doing functional programming in C# easier.