Я думаю, что это один из тех случаев, когда недоумение по поводу синтаксиса ведет вас к лучшему решению.
Кажется вероятным, что вам может потребоваться отдельный репозиторий для каждого класса, что и делает DI.для вас, и какое статическое свойство помешает.
Но я также думаю, что вы путаете здесь свои имена - фабрика создает НОВЫЕ элементы какого-либо типа, в то время как хранилище хранит / сохраняет элементы этого типа.Вы создаете или восстанавливаете?
Я предлагаю разделить их - внедрить фабрику для создания новых и репозиторий для сохранения / восстановления существующих.Используйте DI, чтобы решить, какая конкретная реализация основана на типе во время выполнения.