# 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);