特性小复习
using ConsoleApplication1; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Status dd = Status.中间; string tt = dd.GetEnumAttributeByProperty<Status, TextAttribute>("Text"); } } public enum Status { [Text("Begin", Order = "3")] 开始 = 1, [Text("Middle", Order = "2")] 中间 = 2, [Text("End", Order = "2")] 结束 = 3 } public class TextAttribute : Attribute { public string Text { get; set; } public string Order { get; set; } public TextAttribute(string text) { this.Text = text; } } public static class Exts { public static string GetEnumAttributeByProperty<TEnum, TAttr>(this TEnum enums, string property) where TAttr : Attribute { if (!typeof(TEnum).IsEnum) return ""; var type = enums.GetType(); var d1 = Enum.GetName(typeof(TEnum), enums); var field = type.GetField(d1); var descAttr = Attribute.GetCustomAttribute(field, typeof(TAttr)); var property1 = descAttr.GetType().GetProperty(property); var t = property1.GetValue(descAttr); var name = type.GetEnumName(enums); return t.ToString(); } } }