Вы не можете ничего установить для объекта , пока он не будет создан, поэтому ваше требование (как указано) невозможно.
Если бы вы использовали статический метод фабрики, вы могли бы использовать сеттеры - но это потребовало бы, чтобы ваш конструктор был закрытым, поэтому на самом деле ничего не изменится кроме конструктора.
Вы можете использовать метод Initialize
, который основан на определенных свойствах, но вам придется полагаться на этот метод, который вызывается. Это означает, что нужно либо много работать, чтобы удостовериться, что метод был вызван (например, каждый метод класса должен вызывать if (!IsInitialized) throw ...
), либо вы просто вводите хрупкость в свой код.
Любое альтернативное решение является менее надежным или более сложным, чем просто размещение абсолютно необходимых данных в вашем конструкторе - для этого и нужен параметр конструктора. Я бы посоветовал вам пересмотреть произвольное требование, чтобы параметры конструктора были «зарезервированы» в пользу чего-то более технического.