Я начинаю рассматривать создание библиотеки классов, которую я хочу сделать универсальным, таким образом, другие могут использовать его. Распланировав его, я пришел к размышлению о различных параметрах конфигурации, что мне будет нужно. Так как идея состоит в том, чтобы заставить его открыться/совместно использовать, я хотел сделать вещи максимально легкими на конечном пользователе. Что лучший способ состоит в том, чтобы установить параметры конфигурации, не используя web.config/app.config?
Почему вы отказываетесь от использования web.config / app.config? Вот для чего они нужны, и я бы так и поступил.
Поместите пример блока кода для web.config / app.config в вашу документацию, который можно скопировать и вставить в настоящий файл конфигурации. Если хорошо задокументировано, это не должно быть проблемой для ваших пользователей.
Только убедитесь, что у вас не произойдет сбой, потому что настройки не существуют. Или, если произойдет сбой, предоставьте подробное сообщение об ошибке, предлагающее пользователю отредактировать соответствующий файл конфигурации и где в документации они могут найти примеры. Это упростило бы задачу вашему пользователю.
Я думаю, что нет ничего плохого в том, чтобы использовать web.config для хранения элементов конфигурации. Но вы могли бы быть более гибкими, предлагая 3 варианта конфигурации, как это делают многие популярные библиотеки (nhibernate, log4net и т.д.)
Делая это таким образом, вы оставляете решение за пользователями вашей библиотеки, вместо того, чтобы предполагать, что они не будут счастливы использовать web.config.
Если вас беспокоят все остальные теги в web.config, почему бы вам не «включить» свой файл конфигурации, содержащий только те параметры, которые ваши пользователи могут настроить?
синтаксис:
<include uri="your file.xml" />
Имея ваш "file.xml" вне web.config, вы предотвращаете типичные ошибки ваших пользователей по ненадлежащему изменению вашего web.config.