Можно ли использовать синглтон с конструктором не по умолчанию в C #?

Это небольшое отклонение от этого вопроса: Можно ли использовать синглтон с конструктором не по умолчанию в C #?

У меня есть класс, который принимает параметры для него конструктор. Я хотел бы сделать этот синглтон таким образом, чтобы параметры принимались при инициализации синглтона и, следовательно, не нужно было передавать каждый раз, когда экземпляр извлекается.

Мое решение (которое не изящно) состоит в том, чтобы иметь статический метод CreateInstance () , который принимает параметры и создает экземпляр singleton. Тогда у меня был бы другой статический метод GetInstance () , который не имел бы параметров для получения одноэлементного экземпляра. Затем в коде мне нужно будет обеспечить логические вызовы CreateInstance перед любыми вызовами GetInstance. Однако я не могу обеспечить это во время компиляции. Однако я могу проверить это во время выполнения, выбрасывая исключение в GetInstance , если оно вызывается до CreateInstance .

Можно ли каким-либо образом добиться такого поведения с помощью принудительного выполнения времени компиляции? Или, по крайней мере, есть лучший способ сделать то же самое?

6
задан Community 23 May 2017 в 12:04
поделиться