public virtual T GetSetting <T>(string key, T defaultValue)
        {
            if (!ParsedObject.ContainsKey(key))
            {
                return(defaultValue);
            }

            return(ParsedObject.GetValue(key).ToObject <T>());
        }
 public override T GetSetting <T>(string key)
 {
     if (ParsedObject.ContainsKey(key))
     {
         return(ParsedObject.GetValue(key).ToObject <T>());
     }
     if (DefaultValues.ContainsKey(key))
     {
         return(DefaultValues[key].ToObject <T>());
     }
     throw new Exception($"No entry or default entry was found with key {key}.");
 }