T Headers.Get <T>(string key, T defaultValue) { if (key == null) { throw new ArgumentNullException(nameof(key)); } object obj; if (!_provider.TryGetHeader(key, out obj)) { return(defaultValue); } if (obj == null) { return(defaultValue); } JToken token = obj as JToken ?? new JValue(obj); if (token.Type == JTokenType.Null) { return(defaultValue); } using (JsonReader jsonReader = token.CreateReader()) return((T)_deserializer.Deserialize(jsonReader, typeof(T)) ?? defaultValue); }
bool Headers.TryGetHeader(string key, out object value) { if (key == null) { throw new ArgumentNullException(nameof(key)); } return(_provider.TryGetHeader(key, out value)); }
T IObjectTypeDeserializer.Deserialize <T>(IHeaderProvider dictionary, string key, T defaultValue) { if (!dictionary.TryGetHeader(key, out var value)) { return(defaultValue); } // throw new KeyNotFoundException($"The key was not present: {key}"); return(Deserialize <T>(value)); }
T IObjectTypeDeserializer.Deserialize <T>(IHeaderProvider dictionary, string key, T defaultValue) { return(dictionary.TryGetHeader(key, out var value) ? Deserialize <T>(value) : defaultValue); }