public override HttpActionBinding GetBinding(HttpActionDescriptor actionDescriptor) { var actionBinding = new MvcActionBinding(serializerSettings); HttpParameterDescriptor[] parameters = actionDescriptor.GetParameters().ToArray(); HttpParameterBinding[] binders = Array.ConvertAll(parameters, DetermineBinding); actionBinding.ParameterBindings = binders; return actionBinding; }
public override HttpActionBinding GetBinding(HttpActionDescriptor actionDescriptor) { var actionBinding = new MvcActionBinding(); HttpParameterDescriptor[] parameters = actionDescriptor.GetParameters().ToArray(); HttpParameterBinding[] binders = Array.ConvertAll(parameters, DetermineBinding); actionBinding.ParameterBindings = binders; return actionBinding; }
public override HttpActionBinding GetBinding(HttpActionDescriptor actionDescriptor) { MvcActionBinding actionBinding = new MvcActionBinding(); HttpParameterDescriptor[] parameters = actionDescriptor.GetParameters().ToArray(); HttpParameterBinding[] binders = Array.ConvertAll(parameters, p => DetermineBinding(actionBinding, p)); actionBinding.ParameterBindings = binders; return(actionBinding); }
private HttpParameterBinding DetermineBinding(MvcActionBinding actionBinding, HttpParameterDescriptor parameter) { HttpConfiguration config = parameter.Configuration; var attr = new ModelBinderAttribute(); // use default settings ModelBinderProvider provider = attr.GetModelBinderProvider(config); IModelBinder binder = provider.GetBinder(config, parameter.ParameterType); // Alternatively, we could put this ValueProviderFactory in the global config. List<ValueProviderFactory> vpfs = new List<ValueProviderFactory>(attr.GetValueProviderFactories(config)); vpfs.Add(new BodyValueProviderFactory()); return new ModelBinderParameterBinding(parameter, binder, vpfs); }
private HttpParameterBinding DetermineBinding(MvcActionBinding actionBinding, HttpParameterDescriptor parameter) { HttpConfiguration config = parameter.Configuration; var attr = new ModelBinderAttribute(); // use default settings ModelBinderProvider provider = attr.GetModelBinderProvider(config); IModelBinder binder = provider.GetBinder(config, parameter.ParameterType); // Alternatively, we could put this ValueProviderFactory in the global config. List <ValueProviderFactory> vpfs = new List <ValueProviderFactory>(attr.GetValueProviderFactories(config)); vpfs.Add(new BodyValueProviderFactory()); return(new ModelBinderParameterBinding(parameter, binder, vpfs)); }