di library
Dependency injection module.
Provides a simple service locator pattern for registering and retrieving dependencies. Supports both type-based and key-based lookup.
Example:
import 'package:redus/di.dart';
// Register by type
register<ApiService>(ApiService());
final api = get<ApiService>();
// Register by type + key (for multiple instances)
register<Logger>(ConsoleLogger(), key: #console);
register<Logger>(FileLogger(), key: #file);
final consoleLogger = get<Logger>(key: #console);
Classes
- ServiceLocator
- Service locator for dependency injection.
Functions
-
get<
T extends Object> ({Symbol? key}) → T - Get a registered instance or factory result.
-
isRegistered<
T extends Object> ({Symbol? key}) → bool - Check if a type (and optional key) is registered.
-
register<
T extends Object> (T instance, {Symbol? key}) → void - Register a singleton instance.
-
registerFactory<
T extends Object> (T factory(), {Symbol? key}) → void - Register a factory function.
-
resetLocator(
) → void - Reset all registrations.
-
unregister<
T extends Object> ({Symbol? key}) → void - Remove a registered instance or factory.