У меня есть проект, для которого мы расширяем некоторые функции с существующего клиента на веб-портал в ASP.NET 2.0. Клиент на основе форм Windows (в .NET 2.0). Он имеет некоторые параметры, которые хранятся в системе Project> Properties> Settings.settings, включая сгенерированный файл settings.Designer.cs. Этот файл предоставляет хорошие автоматические упаковщики для каждой настройки.
Пытаясь настроить веб-сайт, я был разочарован очевидным отсутствием паритета для этой функции. У меня есть web.config, и он может иметь раздел. Это означает доступ через код со строками, например:
WebConfigurationManager.AppSettings["mySetting"];
Я даже могу сделать так, чтобы настройки ссылались на другой файл таким образом, предоставляя небольшую абстракцию и более легкие проверки в системе контроля версий:
<appSettings configSource="web.settings.config"/>
, но в конечном итоге ему не хватает некоторых функций системы настроек клиентских проектов.
В частности, я бы очень хотел, чтобы эти функции, если это вообще было возможно:
- Класс сгенерированного автоматически (для удобства intellisense ..)
- Удобный
- Сильно типизированный
- Обеспечивает Intellisense
- Код не будет компилироваться против опечаток / ошибок в именах настроек
- Простой интерфейс
- Настройки. Настройки перед предоставлением приятной сетки
- Все представленные варианты
- Показан выпадающий список для определенных опций
- Не нужно редактировать XML
- Не может толстый палец угловая скобка
Я знаю, что было бы возможно создать класс, который обернул бы их, но он не будет автоматически синхронизироваться с настройками, и его придется редактировать вручную при любом изменении. Это обеспечит некоторые из вышеперечисленных тем не менее.
Могу ли я получить паритет с настройками проекта, как мы делаем в нашем клиенте?
Каков наилучший способ управления настройками веб-сайта ASP.NET 2.0?