# Injecting multiple services
We saw previously that we could tag our services, as such some of them
might share the same service identifier. We can inject all services
that share a common identifier using the @InjectAll
decorator.
Taking the example from previous page:
const TYPES = {
cache: Symbol('cache')
};
@Service({ identifier: TYPES.cache, tag: 'redis' })
class RedisCache implements ICache { /* ... */ }
@Service({ identifier: TYPES.cache, tag: 'local' })
class LocalCache implements ICache { /* ... */ }
We can inject them all in another service easily:
@Service()
class MyService {
@InjectAll(TYPES.cache)
private caches: ICache[];
// Or through constructor
constructor(@InjectAll(TYPES.cache) caches: ICache[]) {}
}
Resolving them manually can be done with:
container.getAll(TYPES.cache);