public static string?GetCode <T>(string key) { return((EnumFieldCache.Get(typeof(T)) .Where(kvp => kvp.Key.NiceToString() == key) .Select(kvp => kvp.Value.GetCustomAttribute <CodeAttribute>() !.Code)) .SingleOrDefaultEx()); }
public static T?GetByCode <T>(string code) where T : struct, Enum { return((T?)(object?)EnumFieldCache.Get(typeof(T)) .Where(kvp => kvp.Value.GetCustomAttribute <CodeAttribute>() !.Code == code) .Select(kvp => kvp.Key) .SingleOrDefaultEx()); }
public static string NiceToString(this Enum a) { var fi = EnumFieldCache.Get(a.GetType()).TryGetC(a); if (fi != null) { return(GetMemberNiceName(fi) ?? DefaultMemberDescription(fi)); } return(a.ToString().NiceName()); }
static IEnumerable <MemberInfo> GetMembers(Type type) { if (type.IsEnum) { return(EnumFieldCache.Get(type).Values); } else if (type.IsAbstract && type.IsSealed) // static { return(type.GetFields(staticFlags).Cast <MemberInfo>()); } else { return(type.GetProperties(instanceFlags).Concat(type.GetFields(instanceFlags).Cast <MemberInfo>())); } }