0 purchases
dinjection
DInjection 🗄️ #
DInjection is a lightweight DI library inspired by .NET Service Collection and Service Provider.
Features #
✅ Global services scope
✅ Singleton & Transient lifetimes
✅ Register base types
✅ Get all types of base
✅ High Performance
Examples #
Basic usage:
//
final services = ServicesCollection() //
.add((_) => ServiceA())
.build();
//
final service = services.getOf<ServiceA>();
//
service.foo();
copied to clipboard
Global services:
//
final services = ServicesCollection() //
.add((_) => ServiceA())
.build()
.setGlobal();
//
functionWithNoParameters();
//
void functionWithNoParameters() {
final service = gServices.getOf<ServiceA>();
service.foo();
}
copied to clipboard
Base type :
//
final services = ServicesCollection() //
.base<BaseServiceA>((base) => base.add((services) => ServiceA()))
.build();
//
final service = services.getOf<BaseServiceA>();
//
service.foo();
copied to clipboard
Get all types of base :
//
final services = ServicesCollection() //
.base<BaseServiceA>((base) => base //
.add((services) => ServiceA())
.add((services) => ServiceB()))
.build();
//
final base = services.getManyOf<BaseServiceA>();
//
for (var b in base) {
b.foo();
}
copied to clipboard
Perfomance #
Here is a perfomance chart of other libraries performing get for transient and singelton.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.