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);
        }
Exemplo n.º 2
0
        private static void AddHybridModelBinder(this MvcOptions mvcOptions)
        {
            var hybridConvention = new HybridModelBinderApplicationModelConvention();

            mvcOptions.Conventions.Add(hybridConvention);
        }