in src/WebJobs.Extensions.Http/HttpTriggerAttributeBindingProvider.cs [62:85]
public Task<ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
ParameterInfo parameter = context.Parameter;
HttpTriggerAttribute attribute = parameter.GetCustomAttribute<HttpTriggerAttribute>(inherit: false);
if (attribute == null)
{
return Task.FromResult<ITriggerBinding>(null);
}
bool isSupportedTypeBinding = ValueBinder.MatchParameterType(parameter, _supportedTypes);
bool isUserTypeBinding = !isSupportedTypeBinding && IsValidUserType(parameter.ParameterType);
if (!isSupportedTypeBinding && !isUserTypeBinding)
{
throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture,
"Can't bind HttpTriggerAttribute to type '{0}'.", parameter.ParameterType));
}
return Task.FromResult<ITriggerBinding>(new HttpTriggerBinding(attribute, context.Parameter, isUserTypeBinding, _options));
}