Do not run custom header parsers on null header values (#678)

This commit is contained in:
Pavel Krymets 2016-08-02 19:40:30 -07:00 committed by GitHub
parent 6c56f1df28
commit e320755734
1 changed files with 14 additions and 12 deletions

View File

@ -176,18 +176,19 @@ namespace Microsoft.AspNetCore.Http
}
object temp;
if (KnownParsers.TryGetValue(typeof(T), out temp))
{
var func = (Func<string, T>)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<string, T>)temp;
return func(value);
}
return GetViaReflection<T>(value.ToString());
}
@ -199,18 +200,19 @@ namespace Microsoft.AspNetCore.Http
}
object temp;
if (KnownListParsers.TryGetValue(typeof(T), out temp))
{
var func = (Func<IList<string>, IList<T>>)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<string>, IList<T>>)temp;
return func(values);
}
return GetListViaReflection<T>(values);
}