private SettingsTypeContainer CreateNewContainer <T>() { var type = typeof(T); var properties = type.GetProperties(BindingFlags.Instance | BindingFlags.Public); var propertiesMap = new Dictionary <PropertyInfo, SettingPropertyAttribute>(); foreach (var propertyInfo in properties) { var attribute = propertyInfo.GetCustomAttribute <SettingPropertyAttribute>(); if (attribute != null) { propertiesMap.Add(propertyInfo, attribute); } } var container = new SettingsTypeContainer(type, propertiesMap); SettinsCache.Add(type, container); return(container); }
public string[] GetKeys <T>(bool useLowerCase = false) { SettingsTypeContainer container = GetOrCreateContainer <T>(); return(container.GetKeys(useLowerCase)); }