это означает, что любые параметры вам нужны
чтобы заставить класс работать
индуцируется как собственность.
В идеале синглтон-класс не должен зависеть от внешнего кода.
В случае, если вам необходимо предоставить дополнительную информацию для одноэлементного конструктора, вы можете просто создать пул объектов.
Это может быть простой список или любая другая подходящая структура данных. Вам нужно будет сделать его поточно-ориентированным (если это имеет значение) и гарантировать, что не будет нескольких объектов, созданных с одинаковыми параметрами.
В основном у вас будет фабрика классов. Он вернет один и тот же объект для тех же параметров.
В этом случае у вас будет N одноэлементных объектов - то есть объекты с другим состоянием будут рассматриваться как совершенно разные экземпляры.
Примеры таких синглетонов можно найти в контейнерах Inversion of Controls.
Например, у вас может быть какая-то услуга, которая зависит от других услуг. При вызове container.Get (вид услуги). Контейнер DI автоматически инициализирует экземпляр службы с необходимыми параметрами и возвращает его вызывающей стороне. Но этот экземпляр службы становится одноэлементным - вы не сможете создать другой сервис с такими же параметрами.