DevTeam / Pure.DI

Pure DI for .NET
MIT License
410 stars 21 forks source link

Generic type composition root #42

Closed NikolayPianikov closed 4 months ago

NikolayPianikov commented 4 months ago

For example:

interface IDependency;

class Dependency<T> : IDependency<T>;

interface IService<T>;

class Service<T>(IDependency<T> dependency) : IService<T>;

DI.Setup(nameof(Composition))
  .Bind<IDependency<TT>>().To<Dependency<TT>>()
  .Bind<IService<TT>>().To<Service<TT>>()
  .Root<IService<TT>>("MyRoot");

var composition = new Composition();
var root = composition.MyRoot<int>();
NikolayPianikov commented 4 months ago

Example