【发布时间】:2010-05-22 15:46:05
【问题描述】:
我有一个字符串列表,这些字符串是枚举值的候选对象。他们是
- 不要发送差异
- 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 服务以获取正确的资源。
我想知道如何使用 System.Reflection.Emit 创建DescriptionAttribute
基本上问题是在哪里以及如何存储原始字符串,以便在选择 Enumeration 值时,可以检索到相应的值。
我也有兴趣知道如何在需要时访问DescriptionAttribute。
【问题讨论】:
-
你为什么要问关于使用 relection.emit 添加属性,即在运行时添加属性?在上面的示例中,您直接在代码中添加了属性。
-
我的意思是,我想要这样的东西。如果您构建一个包含此代码部分的项目,它应该与使用 Reflection.Emit 创建的相同
标签: c# .net reflection enums reflection.emit