В настоящее время я использую стандартное приложение 4.0 Web Forms (без динамических данных), и я хотел бы попытаться сделать конфигурацию своего сайта максимально динамичной.
У меня есть таблица базы данных, где каждая строка представляет тип файла.Я хочу сделать процесс, в котором конфигурация сайта достаточно динамична, чтобы обрабатывать и ассимилировать изменения в его конфигурации на основе изменений в этой таблице.
В настоящее время у меня есть коллекция записей в разделе конфигурации в моем файле web.configкоторый представляет собой коллекцию типов файлов.Поэтому, возможно, у меня будет что-то вроде <add key="Pdf">
в разделе типов файлов, если я хочу работать с файлами PDF.
Каждый из этих ключей имеет запись в моей базе данных, и я использую перечисление длясопоставить дружественное имя / объект CLR со значением базы данных (целое число).Мне нравится, как я могу легко использовать это в атрибуте тега, например, <cc1:MyControl FileType="Pdf">
, и я могу использовать комбинацию данных базы данных и дополнительных атрибутов из web.config, чтобы позволить Intellisense действительно делать свое дело.
Проблема в том, что это перечисление в настоящее время жестко запрограммировано, и я не знаю хорошего способа сделать это динамическим для обработки будущих добавлений или удалений.На самом деле, если я хочу добавить новый тип файла, мне нужно будет добавить новую строку в базу данных, добавить запись для нее в web.config, а затем обновить перечисление с новым идентификатором.Это нормально для меня, но это немного ручная работа, и я не могу говорить о способности нашей поддержки следовать этой процедуре.
Я думаю, что концептуально для меня является препятствием, потому что вместопереводя схему DB в схему CLR, я на самом деле пытаюсь преобразовать конгломерат экземпляров объекта схемы в один тип.
Я использую платформу сущностей, поэтому использование чего-то там не является проблемой.
Я подумывал об использовании xsd.exe, но, поскольку я не заинтересован в планировании его запуска или вызове его для обновления схемы, иметь других разработчиков, возможно, более громоздко, чем просто обновить enum вручную.Однако, если есть что-то, что я могу сделать по этому маршруту, я более чем готов проверить это.
Чтобы уточнить, я не особо зациклен на наличии этого в web.config, это просто, как я это сделалчтобы заставить его работать красиво и красиво, как в жестком коде.
В идеале, я хотел бы, чтобы данные, которые берутся из базы данных, автоматически анализировались и / или распознавались, где яможно просто поместить его имя или представление на простом английском языке в свойстве тега.Я думаю, что это, скорее всего, будет выглядеть как какой-то XML-файл схемы, на который ссылается клиент.
Если у вас есть какие-либо предложения, я был бы очень признателен.Спасибо, ребята.