Изучение
Начало работы
Конфигурация, разрешение и закрытие небольшого контейнера Ark DI.
v0.1.0-dev.1Начальный уровеньark_di
Начало работы
shell
dart pub add ark_di
dart
final container = DiContainer.build((binder) {
binder.bindInstance<AppConfig>(config);
binder.bindLazySingleton<ApiClient>(
(resolver) => ApiClient(resolver.get<AppConfig>()),
dispose: (client) => client.close(),
);
binder.bindFactory<CatalogService>(
(resolver) => CatalogService(resolver.get<ApiClient>()),
);
});
final service = container.get<CatalogService>();
await container.close();
Callback конфигурации выполняется один раз. DiBinder становится недействительным после его завершения, поэтому runtime-код не может незаметно менять регистрации. Контейнер владеет только теми объектами, для которых это определено семантикой регистрации.