dispose method
Implementation
@override
void dispose() {
_bag.entries.forEach((pair) {
if (pair.value is Disposable) {
pair.value.dispose();
} else if (pair.value is StreamSubscription) {
pair.value.cancel();
} else if (pair.value is EventSink) {
pair.value.close();
} else if (pair.value is StreamSink) {
pair.value.close();
} else {
additionalDisposer?.call(pair.value);
}
log('${pair.key} : ${pair.value.runtimeType.toString()}\'s instance has been released.');
});
_bag.clear();
}