C# 添加枚举中文资源
2021-06-10 17:04
标签:技术 blog eve style == eof lse ati http 在业务开发过程中,添加枚举,在固定枚举值的同时,也需要中文的文案。 如果不想添加语言资源项、添加枚举转语资源项,可以使用特性标记。 先看案例: 以上,能够直接获取到枚举的描述值。所以我们可以用Description标记,取代我们经常要对枚举添加的中文注释,既是注释也是一种简便的语言项资源。 DescriptionAttribute继承自Attribute,所以枚举的中文标记值,可以通过反射获取: 如果不想用DescriptionAttribute,或者需要额外的描述信息,可以自定义一个标记。比如: 枚举的描述值获取: C# 添加枚举中文资源 标签:技术 blog eve style == eof lse ati http 原文地址:https://www.cnblogs.com/lonelyxmas/p/10597505.html属性描述 DescriptionAttribute
1 public enum WheelchairDataType
2 {
3 [Description("前进加速")]
4 ForwardAdd,
5 [Description("前进减速")]
6 ForwardReduce,
7 [Description("后退加速")]
8 BackwardAdd,
9 [Description("后退减速")]
10 BackwardReduce,
11 [Description("转弯加速")]
12 TurningAdd,
13 [Description("转弯减速")]
14 TurningReduce
15 }
1 static void Main(string[] args)
2 {
3 var enumDescriptionDict = GetEnumDescriptionDict(WheelchairDataType.BackwardAdd.GetType());
4 var enumDescription = enumDescriptionDict[WheelchairDataType.BackwardAdd.ToString()];
5 Console.WriteLine($"{ WheelchairDataType.BackwardAdd.ToString()}:{enumDescription}");
6 Console.ReadLine();
7 }
1 ///
自定义枚举的描述标记EnumDetailAttribute
1 public class EnumDetailAttribute : Attribute
2 {
3 public string Name { get; set; }
4
5 public int SpecialOrder { get; set; }
6 }
1 public enum WheelchairDataType
2 {
3 [EnumDetail(Name = "前进加速")]
4 ForwardAdd,
5 [EnumDetail(Name = "前进减速")]
6 ForwardReduce,
7 [EnumDetail(Name = "后退加速")]
8 BackwardAdd,
9 [EnumDetail(Name = "后退减速")]
10 BackwardReduce,
11 [EnumDetail(Name = "转弯加速")]
12 TurningAdd,
13 [EnumDetail(Name = "转弯减速")]
14 TurningReduce
15 }
1 static void Main(string[] args)
2 {
3 Console.WriteLine($"{ WheelchairDataType.BackwardAdd.ToString()}:{ WheelchairDataType.BackwardAdd.GetName()}");
4 Console.ReadLine();
5 }
1 public static class EnumExtensions
2 {
3 ///