diff --git a/src/Microsoft.AspNetCore.Http.Extensions/HeaderDictionaryTypeExtensions.cs b/src/Microsoft.AspNetCore.Http.Extensions/HeaderDictionaryTypeExtensions.cs index 2f9c570d67..29e4a0efee 100644 --- a/src/Microsoft.AspNetCore.Http.Extensions/HeaderDictionaryTypeExtensions.cs +++ b/src/Microsoft.AspNetCore.Http.Extensions/HeaderDictionaryTypeExtensions.cs @@ -176,18 +176,19 @@ namespace Microsoft.AspNetCore.Http } object temp; - if (KnownParsers.TryGetValue(typeof(T), out temp)) - { - var func = (Func)temp; - return func(headers[name]); - } - var value = headers[name]; + if (StringValues.IsNullOrEmpty(value)) { return default(T); } + if (KnownParsers.TryGetValue(typeof(T), out temp)) + { + var func = (Func)temp; + return func(value); + } + return GetViaReflection(value.ToString()); } @@ -199,18 +200,19 @@ namespace Microsoft.AspNetCore.Http } object temp; - if (KnownListParsers.TryGetValue(typeof(T), out temp)) - { - var func = (Func, IList>)temp; - return func(headers[name]); - } - var values = headers[name]; + if (StringValues.IsNullOrEmpty(values)) { return null; } + if (KnownListParsers.TryGetValue(typeof(T), out temp)) + { + var func = (Func, IList>)temp; + return func(values); + } + return GetListViaReflection(values); }