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