Получать значения enum из web.config во время выполнения

У меня есть перечисление, которое я хочу получить из web.config во время выполнения. Я начал читать о сборщиках, но это, похоже, работает для классов. Может кто-то указать мне пример или, по крайней мере, указать мне в правильном направлении.

Прямо сейчас у меня есть список значений, разделенных запятыми, в файле web.config, и это не безопасно для типов и подвержено ошибкам.

Если есть другой подход к получению этого типа "динамического enum", я открыт для других идей.

Спасибо!

Ответ 1

Вы можете использовать ConfigurationManager и преобразовать значение в enum:

<configuration> 
  <appSettings>
    <add key="YourEnum" value="BlueSky" />  
  </appSettings>
</configuration>

string configValue = ConfigurationManager.AppSettings["YourEnum"];
YourEnumType value = (YourEnumType)Enum.Parse(typeof(YourEnumType), configValue ); 

Ответ 2

Если бы я был вами, тогда я бы разработал свой класс Enum. Таким образом, вы сможете либо сериализовать его в XML, либо построить его во время выполнения. Это также гарантирует, что у вас все еще есть безопасность типов.

Обычно данные будут храниться либо в виде словаря, либо в виде пары ключ/значение в классе. Затем вы можете сохранить список значений в файле конфигурации (посмотрите, как читать данные списка)

Взгляните сюда, чтобы получить некоторые идеи.