diff --git a/src/Mvc/Mvc.Core/src/ModelBinding/Binders/CancellationTokenModelBinderProvider.cs b/src/Mvc/Mvc.Core/src/ModelBinding/Binders/CancellationTokenModelBinderProvider.cs index b3ee6f7361..6819805276 100644 --- a/src/Mvc/Mvc.Core/src/ModelBinding/Binders/CancellationTokenModelBinderProvider.cs +++ b/src/Mvc/Mvc.Core/src/ModelBinding/Binders/CancellationTokenModelBinderProvider.cs @@ -11,6 +11,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders /// public class CancellationTokenModelBinderProvider : IModelBinderProvider { + // CancellationTokenModelBinder does not have any state. Re-use the same instance for binding. + + private readonly CancellationTokenModelBinder _modelBinder = new CancellationTokenModelBinder(); + /// public IModelBinder GetBinder(ModelBinderProviderContext context) { @@ -21,7 +25,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders if (context.Metadata.ModelType == typeof(CancellationToken)) { - return new CancellationTokenModelBinder(); + return _modelBinder; } return null; diff --git a/src/Mvc/Mvc.Core/src/ModelBinding/Binders/ServicesModelBinderProvider.cs b/src/Mvc/Mvc.Core/src/ModelBinding/Binders/ServicesModelBinderProvider.cs index 2dea775a0a..b09d625c4d 100644 --- a/src/Mvc/Mvc.Core/src/ModelBinding/Binders/ServicesModelBinderProvider.cs +++ b/src/Mvc/Mvc.Core/src/ModelBinding/Binders/ServicesModelBinderProvider.cs @@ -10,6 +10,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders /// public class ServicesModelBinderProvider : IModelBinderProvider { + // ServicesModelBinder does not have any state. Re-use the same instance for binding. + + private readonly ServicesModelBinder _modelBinder = new ServicesModelBinder(); + /// public IModelBinder GetBinder(ModelBinderProviderContext context) { @@ -21,7 +25,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Binders if (context.BindingInfo.BindingSource != null && context.BindingInfo.BindingSource.CanAcceptDataFrom(BindingSource.Services)) { - return new ServicesModelBinder(); + return _modelBinder; } return null;