static OverridableFrameSettingsArea() { attributes = new Dictionary <FrameSettingsField, FrameSettingsFieldAttribute>(); attributesGroup = new Dictionary <int, IOrderedEnumerable <KeyValuePair <FrameSettingsField, FrameSettingsFieldAttribute> > >(); Dictionary <FrameSettingsField, string> frameSettingsEnumNameMap = FrameSettingsFieldAttribute.GetEnumNameMap(); Type type = typeof(FrameSettingsField); foreach (FrameSettingsField enumVal in frameSettingsEnumNameMap.Keys) { attributes[enumVal] = type.GetField(frameSettingsEnumNameMap[enumVal]).GetCustomAttribute <FrameSettingsFieldAttribute>(); } frameSettingsKeywords = attributes .Values.Where(v => !string.IsNullOrEmpty(v?.displayedName)) .Select(v => v.displayedName?.ToLowerInvariant()).ToArray(); }