У меня кругом ручной DI. И я не стесняюсь асинхронно инициализировать вещи, в том числе зависимости. Поэтому я использую классы, а в конструктор передаю все, о чем не должен знать-думать дальнейший потребитель класса.
В данном случае, скорее всего, я бы отказался от передачи коллекции в вызове функции.