Есть ли способ динамического заполнения Enum из таблицы базы данных? - PullRequest
1 голос
/ 27 июня 2011

Я хочу создать перечисление для выбора возможностей, но эти возможности могут измениться. Поэтому, чтобы можно было легко вносить изменения, я хочу, чтобы эти возможности были сохранены в таблице базы данных и управлялись ею. Есть ли способ динамического заполнения перечисления из таблицы базы данных? Спасибо, Дов.

Ответы [ 4 ]

0 голосов
/ 27 июня 2011

Хотя было бы возможно создать Enum во время выполнения с использованием EnumBuilder из значений вашей базы данных, оно не будет иметь никакого значения во время компиляции.

См. эту статью об альтернативе.

0 голосов
/ 27 июня 2011

Вы имеете в виду, что вы хотите, чтобы перечисление автоматически изменялось (добавляло / удаляло константы перечисления) для отображения значений в вашей таблице базы данных? Если так, то нет, это невозможно. Перечисления - это просто набор именованных целочисленных констант. Вы должны изменить enum вручную и перекомпилировать сборку.

0 голосов
/ 27 июня 2011

Теоретически у вас есть два варианта:

  1. Используйте CodeDom для создания перечисления:
    http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx

  2. Напишите исходный код перечисленияв текстовый файл и динамически скомпилируйте его в сборку.

Тем не менее, как говорят другие, если он динамически изменяется, вероятно, enum - не правильный выбор для вас.

0 голосов
/ 27 июня 2011

Я не знаю об этой возможности.Однако, почему вы не используете Словарь ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...