У меня есть перечисление, которое я хочу получить из 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, либо построить его во время выполнения. Это также гарантирует, что у вас все еще есть безопасность типов.
Обычно данные будут храниться либо в виде словаря, либо в виде пары ключ/значение в классе. Затем вы можете сохранить список значений в файле конфигурации (посмотрите, как читать данные списка)
Взгляните сюда, чтобы получить некоторые идеи.