A Map
должен иметь уникальные ключи, если все ваши services
имеют одинаковый объект, все ключи будут равны и не уникальны.
Каждый раз, когда вы хотите чтобы добавить запись, новый ключ будет таким же, как последний ключ. Когда Карты получают ключ, равный другому, который у них уже есть, они просто переопределяют значение этого ключа, и поэтому ваш Map
имеет только один элемент.
То, что вы делаете, выглядит примерно так:
Map myMap = { 'myInt': 1 };
myMap['myInt'] = 2;
myMap['myInt'] = 3;
myMap['myInt'] = 4;
В конце myMap
будет иметь только одну запись: 'myInt': 4
.
Единственный способ, которым ваш Map
мог бы работать, это если бы все ваши сервисы были разными объектами.
Сначала было трудно это понять, потому что вы не опубликовали тип своих служб и то, как они создаются, поэтому я предположил, что все они были разными, поскольку обычно мы не создаем один и тот же Сервис несколько раз, но разные Услуги, которые делают разные вещи (Принцип Единой Ответственности).