public bool TryGetValue <T>(string key, out T value) { var lowerCaseKey = key.ToLower(); if (dictionary.TryGetValue(lowerCaseKey, out var json)) { if (typeof(T).IsEnum) { string enumString = JsonSerializer.Deserialize <string>(json); if (!EnumParser <T> .TryParse(enumString, out value)) { value = default; return(false); } } else { value = JsonSerializer.Deserialize <T>(json); } return(true); } else { value = default; return(false); } }
public T GetValue <T>(string key, T defaultValue) { var lowerCaseKey = key.ToLower(); if (dictionary.TryGetValue(lowerCaseKey, out var json)) { if (typeof(T).IsEnum) { string enumString = JsonSerializer.Deserialize <string>(json); if (EnumParser <T> .TryParse(enumString, out T value)) { return(value); } } else { return(JsonSerializer.Deserialize <T>(json)); } } return(defaultValue); }