BodyOrDefaultModelBinderProviderSetup.cs 872 B

123456789101112131415161718192021222324
  1. using Microsoft.AspNetCore.Mvc.ModelBinding;
  2. using Microsoft.AspNetCore.Mvc.ModelBinding.Binders;
  3. #if NET5_0_OR_GREATER
  4. using ComplexDataModelBinderProvider = Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexObjectModelBinderProvider;
  5. #else
  6. using ComplexDataModelBinderProvider = Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinderProvider;
  7. #endif
  8. namespace Masuit.Tools.AspNetCore.ModelBinder;
  9. public static class BodyOrDefaultModelBinderProviderSetup
  10. {
  11. public static void InsertBodyOrDefaultBinding(this IList<IModelBinderProvider> providers)
  12. {
  13. var bodyProvider = providers.OfType<BodyModelBinderProvider>().Single();
  14. var complexDataProvider = providers.OfType<ComplexDataModelBinderProvider>().Single();
  15. providers.Insert(0, new BodyOrDefaultModelBinderProvider(bodyProvider, complexDataProvider));
  16. }
  17. }