コード例 #1
0
ファイル: Startup.cs プロジェクト: alexs0ff/remboard2
        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);
        }