public virtual T GetProperty(PerLanguageOption <T> setting, bool cacheDefault) { if (setting == null) { throw new ArgumentNullException(nameof(setting)); } T value; if (!base.TryGetValue(setting.Name, out value) && setting.DefaultValue != null) { value = setting.DefaultValue(); if (cacheDefault) { this[setting.Name] = value; } } return(value); }
public virtual T GetProperty <T>(PerLanguageOption <T> setting, bool cacheDefault) { if (setting == null) { throw new ArgumentNullException(nameof(setting)); } PropertiesDictionary properties = GetSettingsContainer(setting, cacheDefault); T value; if (!properties.TryGetProperty(setting.Name, out value) && setting.DefaultValue != null) { value = setting.DefaultValue(); if (cacheDefault) { properties[setting.Name] = value; } } return(value); }