private static void ReplaceFromBodyProvider(MvcOptions c) { var provider = c.ModelBinderProviders.FirstOrDefault(p => p.GetType() == typeof(Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider)) as Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider; var formatters = SystemHelpers .GetInstanceField <Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider, IList <IInputFormatter> >(provider, "_formatters"); var readerFactory = SystemHelpers .GetInstanceField <Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider, IHttpRequestStreamReaderFactory>(provider, "_readerFactory"); var loggerFactory = SystemHelpers .GetInstanceField <Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider, ILoggerFactory>( provider, "_loggerFactory"); var localProvider = new Common.Features.Binders.BodyModelBinderProvider(formatters, readerFactory, loggerFactory, c); c.ModelBinderProviders.Remove(provider); c.ModelBinderProviders.Insert(1, localProvider); }