protected void Deploy() { var array = Enum.GetValues(typeof(T)); foreach (Enum en in array) { String ens = en.ToString(); Int32 eni = Convert.ToInt32(en); T ent = (T)Enum.ToObject(typeof(T), eni); EnumToString.Add(en, ens); EnumToInt32.Add(en, eni); EnumToType.Add(en, ent); StringToEnum.Add(ens, en); Int32ToEnum.Add(eni, en); TypeToEnum.Add(ent, en); StringToType.Add(ens, ent); TypeToString.Add(ent, ens); Int32ToType.Add(eni, ent); TypeToInt32.Add(ent, eni); if (eni > MaxInt) { MaxInt = eni; Max = ent; } if (eni < MinInt) { MinInt = eni; Min = ent; } } foreach (Enum en in array) { var enumComponents = en.getEnumListFromFlags(); if (enumComponents.Count == 1) { BaseFlags.Add(EnumToType[en]); } else { CompositeFlags.Add(EnumToType[en]); } } }
private static bool HasFlag(CompositeFlags haystack, CompositeFlags needle) { return((haystack & needle) != 0); }