public static T GetValueOrNull <T>( this IDictionary <string, StringValues> queryStrings, string key, TryParseVal <StringValues, T> factory) where T : class { var value = queryStrings.GetStr(key); T retVal; if (!value.HasValue || !factory(value.Value, out retVal)) { retVal = null; } return(retVal); }
public static T?GetNullableValue <T>( this IDictionary <string, StringValues> queryStrings, string key, TryParseVal <StringValues, T> factory) where T : struct { T? retVal; var value = queryStrings.GetStr(key); T val; if (value.HasValue && factory(value.Value, out val)) { retVal = val; } else { retVal = null; } return(retVal); }