У меня есть список строк, которые являются кандидатами на значения Enumerations. ОниСоздание DescriptionAttribute на поле перечисления с использованием System.Reflection.Emit
- Не отсылайте Diffs
- 500 линий
- 1000 линий
- 5000 линий
- Отправить Целые Diff
Проблема состоит в том, что пробелы, специальные символы не являются часть идентификаторов и даже не может начинаться с числа, поэтому я буду дезинфицировать эти значения только с символами, цифрами и _
Чтобы сохранить исходные значения, я думал положить эти строки в DescriptionAttribute, так что конечный Enum
должен выглядеть
public enum DiffBehvaiour
{
[Description("Don't send diffs")]
Dont_send_diffs,
[Description("500 lines")]
Diff_500_lines,
[Description("1000 lines")]
Diff_1000_lines,
[Description("5000 lines")]
Diff_5000_lines,
[Description("Send entire diff")]
Send_entire_diff
}
Тогда позже с помощью кода я получить реальную строку, связанную со значением перечисления, так что правильная строка может быть отправлена обратно веб-службе, чтобы получить правильный ресурс.
Я хочу знать, как создать DescriptionAttribute
с помощью System.Reflection.Emit
В основном речь идет о том, где и как хранить исходную строку, так что при выборе значения перечисления, соответствующее значение может быть восстановлено ,
Мне также интересно узнать, как получить доступ к DescriptionAttribute
при необходимости.
Почему вы спрашиваете об использовании relection.emit для добавления атрибутов, то есть добавления атрибутов во время выполнения? В приведенном выше примере вы добавили атрибуты в код напрямую. –
Я имею в виду, я хочу что-то вроде этого. Если вы создаете проект, содержащий этот раздел кода, он должен быть таким же, как тот, который был создан с помощью Reflection.Emit –
Я обновил свой ответ. –