private static void AddHybridModelBinder(this MvcOptions mvcOptions, IServiceCollection services, Action <HybridModelBinderOptions> setupAction = null) { var options = new HybridModelBinderOptions(); setupAction?.Invoke(options); var serviceProvider = services.BuildServiceProvider(); var readerFactory = serviceProvider.GetRequiredService <IHttpRequestStreamReaderFactory>(); var hybridConvention = new HybridModelBinderApplicationModelConvention(); mvcOptions.Conventions.Add(hybridConvention); var provider = !options.Passthrough ? (IModelBinderProvider) new DefaultHybridModelBinderProvider(mvcOptions.InputFormatters, readerFactory) : new DefaultPassthroughHybridModelBinderProvider(mvcOptions.InputFormatters, readerFactory); mvcOptions.ModelBinderProviders.Insert(0, provider); }
private static void AddHybridModelBinder(this MvcOptions mvcOptions) { var hybridConvention = new HybridModelBinderApplicationModelConvention(); mvcOptions.Conventions.Add(hybridConvention); }