Skip to content
This repository was archived by the owner on Nov 2, 2018. It is now read-only.
This repository was archived by the owner on Nov 2, 2018. It is now read-only.

Changes to DependencyInjection requirements  #433

@davidfowl

Description

@davidfowl

Moving the discussion from #416

The tricky part with supporting DI is that not all of the things can be codified into the interface definition. That would make it easier for sure but some of it is just impossible.

Right now we're researching a couple of things:

  • We're looking to see which components depend on specific features of the DI container (via some automation) and as part of it, we want to see if we can automate any of it.
  • We're looking at @tillig's suggestions (like writing a chaos container, one of our devs already wrote a second one)
  • We're trying to see if we build ordering on top via another service type (playing around with IOrdered<T>)
  • We're looking at the implementations of other adapters to see what things are impossible to implement (We could use everyone's help/feedback on this one).
  • As a result of the previous exercise, we're also looking to see what other requirements we can relax (last registration wins, closed generics falling back to open generics etc)

As for the a specific list of things we think can be candidates for potential removal:

  • Ordering - We're trying to build a service on top with some that can potentially handle this.
  • Last registration wins - We'll likely change the API around service collection to make sure that if multiple registrations make it into the container, resolving it as a single service fails.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions