我有一个字符串列表,这些字符串是枚举值的候选者。他们是
- 不要发送差异
- 500行
- 1000 行
- 5000 行
- 发送整个差异
问题是空格、特殊字符不是标识符的一部分,甚至不能以数字开头,所以我会将这些值清理为仅字符、数字和 _
为了保留原始值,我想将这些字符串放在 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
}
然后稍后使用代码我将检索与枚举值关联的真实字符串,以便可以将正确的字符串发送回 Web 服务以获取正确的资源。
我想知道如何创建DescriptionAttribute
使用 System.Reflection.Emit
基本上问题是在哪里以及如何存储原始字符串,以便在选择 Enumeration 值时,可以检索相应的值。
我也有兴趣知道如何DescriptionAttribute
在需要时访问。