Glossary

  • Abstraction An abstraction is an interface or class. Every class is also an abstraction, but the focus here is that it is a root of an inheritance hierarchy and therefore potentially represents a larger set of implementations.
  • Collection Injection The term for injecting types like IEnumerable<…>, IReadOnlyList<…>, or IReadOnlyCollection<…>.
  • Container In the context of DIE, it is a class generated by DIE that knows how to instantiate user-selected types. The DIE container uses pure dependency injection, rather than using reflection like more traditional container projects. Depending on the context in this documentation, the term container may also have a generic meaning.
  • Factory Injection The term for injecting types like Lazy<…> or Func<…>. In this context, Lazy<…> can be understood as a parameterless one-time factory.
  • Implementation An implementation is a non-abstract class or a struct or their non-abstract record-variants. Thus, an implementation is a class or struct that can be instantiated by the new operator.
  • Instance Injection An injection for an ordinary type with an ordinary instance.
  • Scope Injection An injection that starts a new scope or transient scope. The instances injected are scope or transient scope roots.