public void SetSetting <T>(SettingEnum settingEnum, T value) { var strName = settingEnum.ToString(); var strValue = Equals(value, default(T)) ? null : value.ToString(); var newValues = Data.Where(pair => !Equals(pair.Key, strName)).ToList(); newValues.Add(new KeyValuePair <string, string>(strName, strValue)); Data = ImmutableSortedList.FromValues(newValues); }
public static T Get <T>(this ISettingsProvider provider, SettingEnum setting) { Type?type = typeof(T); if (type.IsValueType) { type = Nullable.GetUnderlyingType(typeof(T)); if (type == null) { throw new ArgumentException("Type parameter must be a type accepting null values.", nameof(T)); } } var value = provider[setting.ToString()]; return(value != null ? (T)Convert.ChangeType(value, type, CultureInfo.InvariantCulture) : default);
public T GetSetting <T>(SettingEnum settingEnum, T defaultValue) { string stringValue; if (!Data.TryGetValue(settingEnum.ToString(), out stringValue)) { return(defaultValue); } if (null == stringValue) { return(default(T)); } if (typeof(T).IsEnum) { return((T)Enum.Parse(typeof(T), stringValue)); } return((T)Convert.ChangeType(stringValue, typeof(T))); }