Пример #1
0
 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());
 }
Пример #2
0
 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());
 }
Пример #3
0
 public 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>()));
     }
 }