Я бы спросил, должен ли ваш объект быть одноэлементным. Если он не должен быть одиночным , то не делайте его одиночным и полагайтесь на свой контейнер для его создания. Проблема, с которой вы столкнулись, заключается в том, что внедрение зависимостей основано на инверсии управления, и синглтоны обычно конструируют сами себя.
Многие контейнеры будут нести ответственность за жизненный цикл объектов, которые они строят. Если это произойдет, вы можете указать ему использовать только один экземпляр вашего объекта. Однако, если я правильно читаю ваш вопрос, вам действительно нужен новый экземпляр объекта с каждым запросом, поскольку состояние (служба) отличается для каждого запроса.
Короче говоря, используйте синглтон в качестве последнего средства, потому что это вызывает тип проблемы, с которой вы столкнулись сейчас. Если вы привязаны к этому шаблону, подумайте не о внедрении службы, а о передаче ее в качестве параметра. Если вы введете его в состояние, у вас будут проблемы параллелизма с несколькими одновременными запросами, требующими разных экземпляров службы.