У меня есть статический класс, который содержит мою логику базы данных.
Этот класс используется в веб-сайте, веб-сервисах и как часть компонента промежуточного программного обеспечения.
Для каждого метода в этом классе мне нужна часть контекстной информации от вызывающей стороны. В случае веб-сайта это было бы информацией о пользователе для веб-сервиса и компонента промежуточного программного обеспечения, это определит сервис вызова.
Я не могу сохранить это значение в конфигурации, потому что это могло бы отличаться на пользователя, и у меня не всегда есть httpcontext для получения этого от.
Я мог легко добавить новый параметр на каждый метод в этом классе, или я мог изменить его от статического класса так, чтобы он имел единственное нестатическое свойство, но ни одно из тех решений не кажется очень изящным.
Так есть ли какие-либо другие возможности, которые я не рассмотрел?
Если всем методам требуется некоторое состояние, это очень похоже на то, что вам нужно создать экземпляр и передать это состояние через конструктор.
Изменение конструкции с кучи статических методов на экземпляр также облегчит тестирование класса.
Я бы добавил параметры. Мне это не кажется неэлегантным - вам нужна контекстная информация, и единственный способ получить ее в статическом классе - передать ее.