dart_dependency_injection 1.0.2+1 copy "dart_dependency_injection: ^1.0.2+1" to clipboard
dart_dependency_injection: ^1.0.2+1 copied to clipboard

A dart dependency injection library. Easy to manage dependencies.

example/dart_dependency_injection_example.dart

import 'dart:async';

import 'package:dart_dependency_injection/dart_dependency_injection.dart';

class TestObserver extends ServiceObserver {
  @override
  void onServiceCreated(service) {
    print("CommonObserver: ${service.runtimeType} ${service.hashCode} created");
  }

  @override
  void onServiceDispose(service) {
    print("CommonObserver: ${service.runtimeType} ${service.hashCode} dispose");
  }

  @override
  void onServiceInitializeDone(service) {
    print(
        "CommonObserver: ${service.runtimeType} ${service.hashCode} initialize done");
  }
}

class Test1Observer extends ServiceObserver<Test1Service> {
  @override
  void onServiceCreated(service) {
    print("Test1Observer: ${service.runtimeType} ${service.hashCode} created");
  }

  @override
  void onServiceDispose(service) {
    print("Test1Observer: ${service.runtimeType} ${service.hashCode} dispose");
  }

  @override
  void onServiceInitializeDone(service) {
    print(
        "Test1Observer: ${service.runtimeType} ${service.hashCode} initialize done");
  }
}

class Test1Service with DependencyInjectionService {}

class TestService with DependencyInjectionService {
  late final Test1Service testService1;
  @override
  FutureOr dependencyInjectionServiceInitialize() {
    testService1 = getService<Test1Service>();
  }
}

void main() {
  var collection = ServiceCollection();
  collection.add<TestService>((serviceProvider) => TestService());
  collection.add<ServiceObserver>((serviceProvider) => TestObserver());
  collection
      .add<ServiceObserver<Test1Service>>((serviceProvider) => Test1Observer());
  var provider = collection.build();
  var scopedServiceProvider = provider.buildScoped(
    builder: (collection) {
      collection
          .addSingleton<Test1Service>((serviceProvider) => Test1Service());
    },
  );
  scopedServiceProvider.get<TestService>();
  scopedServiceProvider.dispose();
}
3
likes
0
pub points
67%
popularity

Publisher

verified publisherybz.im

A dart dependency injection library. Easy to manage dependencies.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

collection

More

Packages that depend on dart_dependency_injection