diff --git a/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/IValueProviderFactory.cs b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/IValueProviderFactory.cs
index 44aea27f00..39b2948fe7 100644
--- a/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/IValueProviderFactory.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/IValueProviderFactory.cs
@@ -11,12 +11,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
public interface IValueProviderFactory
{
///
- /// Gets a with values from the current request.
+ /// Creates a with values from the current request
+ /// and adds it to list.
///
- /// The .
- ///
- /// A that when completed will yield a instance or null.
- ///
- Task GetValueProviderAsync(ActionContext context);
+ /// The .
+ /// A that when completed will add an instance
+ /// to list if applicable.
+ Task CreateValueProviderAsync(ValueProviderFactoryContext context);
}
}
diff --git a/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/ClientValidatorProviderContext.cs b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/ClientValidatorProviderContext.cs
index 7e827b73a1..fcfcadf14d 100644
--- a/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/ClientValidatorProviderContext.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/ClientValidatorProviderContext.cs
@@ -44,7 +44,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
///
/// Gets the list of instances.
/// instances should add the appropriate properties when
- ///
+ ///
/// is called.
///
public IList Results { get; }
diff --git a/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/IClientModelValidatorProvider.cs b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/IClientModelValidatorProvider.cs
index 78bef3dac8..adf01cf8f8 100644
--- a/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/IClientModelValidatorProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/IClientModelValidatorProvider.cs
@@ -9,10 +9,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
public interface IClientModelValidatorProvider
{
///
- /// Gets set of s by updating
+ /// Creates set of s by updating
/// in .
///
/// The associated with this call.
- void GetValidators(ClientValidatorProviderContext context);
+ void CreateValidators(ClientValidatorProviderContext context);
}
}
diff --git a/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/IModelValidatorProvider.cs b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/IModelValidatorProvider.cs
index 5976accf3b..9ed1704ca9 100644
--- a/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/IModelValidatorProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/IModelValidatorProvider.cs
@@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
public interface IModelValidatorProvider
{
///
- /// Gets the validators for .
+ /// Creates the validators for .
///
/// The .
///
@@ -17,6 +17,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
/// instance which should be added to
/// .
///
- void GetValidators(ModelValidatorProviderContext context);
+ void CreateValidators(ModelValidatorProviderContext context);
}
}
diff --git a/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/ModelValiatorProviderContext.cs b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/ModelValiatorProviderContext.cs
index 4bc1832ab3..b5c96d5074 100644
--- a/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/ModelValiatorProviderContext.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/Validation/ModelValiatorProviderContext.cs
@@ -43,7 +43,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
///
/// Gets the list of instances. instances
/// should add the appropriate properties when
- ///
+ ///
/// is called.
///
public IList Results { get; }
diff --git a/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/ValueProviderFactoryContext.cs b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/ValueProviderFactoryContext.cs
new file mode 100644
index 0000000000..cf48d9072d
--- /dev/null
+++ b/src/Microsoft.AspNetCore.Mvc.Abstractions/ModelBinding/ValueProviderFactoryContext.cs
@@ -0,0 +1,40 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
+using System.Collections.Generic;
+
+namespace Microsoft.AspNetCore.Mvc.ModelBinding
+{
+ ///
+ /// A context for .
+ ///
+ public class ValueProviderFactoryContext
+ {
+ ///
+ /// Creates a new .
+ ///
+ /// The .
+ public ValueProviderFactoryContext(ActionContext context)
+ {
+ if (context == null)
+ {
+ throw new ArgumentNullException(nameof(context));
+ }
+
+ ActionContext = context;
+ }
+
+ ///
+ /// Gets the associated with this context.
+ ///
+ public ActionContext ActionContext { get; }
+
+ ///
+ /// Gets the list of instances.
+ /// instances should add the appropriate
+ /// instances to this list.
+ ///
+ public IList ValueProviders { get; } = new List();
+ }
+}
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/Internal/ClientValidatorCache.cs b/src/Microsoft.AspNetCore.Mvc.Core/Internal/ClientValidatorCache.cs
index fdaea7960e..5dcec980bc 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/Internal/ClientValidatorCache.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/Internal/ClientValidatorCache.cs
@@ -90,7 +90,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
{
var context = new ClientValidatorProviderContext(metadata, items);
- validatorProvider.GetValidators(context);
+ validatorProvider.CreateValidators(context);
}
private IReadOnlyList ExtractValidators(List items)
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultBindingMetadataProvider.cs b/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultBindingMetadataProvider.cs
index a8d69ea777..4b9439dd46 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultBindingMetadataProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultBindingMetadataProvider.cs
@@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
///
- public void GetBindingMetadata(BindingMetadataProviderContext context)
+ public void CreateBindingMetadata(BindingMetadataProviderContext context)
{
if (context == null)
{
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultCompositeMetadataDetailsProvider.cs b/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultCompositeMetadataDetailsProvider.cs
index 36cd8d04df..37dfed3868 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultCompositeMetadataDetailsProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultCompositeMetadataDetailsProvider.cs
@@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
///
- public virtual void GetBindingMetadata(BindingMetadataProviderContext context)
+ public virtual void CreateBindingMetadata(BindingMetadataProviderContext context)
{
if (context == null)
{
@@ -34,12 +34,12 @@ namespace Microsoft.AspNetCore.Mvc.Internal
foreach (var provider in _providers.OfType())
{
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
}
}
///
- public virtual void GetDisplayMetadata(DisplayMetadataProviderContext context)
+ public virtual void CreateDisplayMetadata(DisplayMetadataProviderContext context)
{
if (context == null)
{
@@ -48,12 +48,12 @@ namespace Microsoft.AspNetCore.Mvc.Internal
foreach (var provider in _providers.OfType())
{
- provider.GetDisplayMetadata(context);
+ provider.CreateDisplayMetadata(context);
}
}
///
- public virtual void GetValidationMetadata(ValidationMetadataProviderContext context)
+ public virtual void CreateValidationMetadata(ValidationMetadataProviderContext context)
{
if (context == null)
{
@@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
foreach (var provider in _providers.OfType())
{
- provider.GetValidationMetadata(context);
+ provider.CreateValidationMetadata(context);
}
}
}
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultModelValidatorProvider.cs b/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultModelValidatorProvider.cs
index 500dc83198..11d5739c02 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultModelValidatorProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultModelValidatorProvider.cs
@@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public class DefaultModelValidatorProvider : IModelValidatorProvider
{
///
- public void GetValidators(ModelValidatorProviderContext context)
+ public void CreateValidators(ModelValidatorProviderContext context)
{
//Perf: Avoid allocations here
for (var i = 0; i < context.Results.Count; i++)
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultValidationMetadataProvider.cs b/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultValidationMetadataProvider.cs
index 7917cd9144..2e3116185e 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultValidationMetadataProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/Internal/DefaultValidationMetadataProvider.cs
@@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public class DefaultValidationMetadataProvider : IValidationMetadataProvider
{
///
- public void GetValidationMetadata(ValidationMetadataProviderContext context)
+ public void CreateValidationMetadata(ValidationMetadataProviderContext context)
{
if (context == null)
{
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/Internal/FilterActionInvoker.cs b/src/Microsoft.AspNetCore.Mvc.Core/Internal/FilterActionInvoker.cs
index 703b552770..6bca1a41cb 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/Internal/FilterActionInvoker.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/Internal/FilterActionInvoker.cs
@@ -364,17 +364,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
Context.ValidatorProviders = _resourceExecutingContext.ValidatorProviders;
var valueProviders = new List();
+ var factoryContext = new ValueProviderFactoryContext(Context);
for (var i = 0; i < _resourceExecutingContext.ValueProviderFactories.Count; i++)
{
var factory = _resourceExecutingContext.ValueProviderFactories[i];
- var valueProvider = await factory.GetValueProviderAsync(Context);
- if (valueProvider != null)
- {
- valueProviders.Add(valueProvider);
- }
+ await factory.CreateValueProviderAsync(factoryContext);
}
- Context.ValueProviders = valueProviders;
+ Context.ValueProviders = factoryContext.ValueProviders;
// >> ExceptionFilters >> Model Binding >> ActionFilters >> Action
await InvokeAllExceptionFiltersAsync();
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/Internal/ValidatorCache.cs b/src/Microsoft.AspNetCore.Mvc.Core/Internal/ValidatorCache.cs
index 832e8d949f..f1ee38da92 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/Internal/ValidatorCache.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/Internal/ValidatorCache.cs
@@ -89,7 +89,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private void ExecuteProvider(IModelValidatorProvider validatorProvider, ModelMetadata metadata, List items)
{
var context = new ModelValidatorProviderContext(metadata, items);
- validatorProvider.GetValidators(context);
+ validatorProvider.CreateValidators(context);
}
private IReadOnlyList ExtractValidators(List items)
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/EmptyModelMetadataProvider.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/EmptyModelMetadataProvider.cs
index 1f5bef2ad1..454df38355 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/EmptyModelMetadataProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/EmptyModelMetadataProvider.cs
@@ -22,7 +22,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
private readonly ModelBindingMessageProvider _messageProvider = CreateMessageProvider();
- public void GetBindingMetadata(BindingMetadataProviderContext context)
+ public void CreateBindingMetadata(BindingMetadataProviderContext context)
{
if (context == null)
{
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/FormValueProviderFactory.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/FormValueProviderFactory.cs
index f050cbace3..50f4252c93 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/FormValueProviderFactory.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/FormValueProviderFactory.cs
@@ -9,30 +9,38 @@ using Microsoft.AspNetCore.Mvc.Internal;
namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
+ ///
+ /// A for .
+ ///
public class FormValueProviderFactory : IValueProviderFactory
{
- public Task GetValueProviderAsync(ActionContext context)
+ ///
+ public Task CreateValueProviderAsync(ValueProviderFactoryContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
- var request = context.HttpContext.Request;
+ var request = context.ActionContext.HttpContext.Request;
if (request.HasFormContentType)
{
- return CreateValueProviderAsync(request);
+ // Allocating a Task only when the body is form data.
+ return AddValueProviderAsync(context);
}
- return TaskCache.DefaultCompletedTask;
+ return TaskCache.CompletedTask;
}
- private static async Task CreateValueProviderAsync(HttpRequest request)
+ private static async Task AddValueProviderAsync(ValueProviderFactoryContext context)
{
- return new FormValueProvider(
+ var request = context.ActionContext.HttpContext.Request;
+ var valueProvider = new FormValueProvider(
BindingSource.Form,
await request.ReadFormAsync(),
CultureInfo.CurrentCulture);
+
+ context.ValueProviders.Add(valueProvider);
}
}
}
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/JQueryFormValueProviderFactory.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/JQueryFormValueProviderFactory.cs
index 2a162f52e2..4d4af8b13f 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/JQueryFormValueProviderFactory.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/JQueryFormValueProviderFactory.cs
@@ -19,28 +19,32 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
public class JQueryFormValueProviderFactory : IValueProviderFactory
{
///
- public Task GetValueProviderAsync(ActionContext context)
+ public Task CreateValueProviderAsync(ValueProviderFactoryContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
-
- var request = context.HttpContext.Request;
+
+ var request = context.ActionContext.HttpContext.Request;
if (request.HasFormContentType)
{
- return CreateValueProviderAsync(request);
+ // Allocating a Task only when the body is form data.
+ return AddValueProviderAsync(context);
}
- return TaskCache.DefaultCompletedTask;
+ return TaskCache.CompletedTask;
}
- private static async Task CreateValueProviderAsync(HttpRequest request)
+ private static async Task AddValueProviderAsync(ValueProviderFactoryContext context)
{
- return new JQueryFormValueProvider(
+ var request = context.ActionContext.HttpContext.Request;
+ var valueProvider = new JQueryFormValueProvider(
BindingSource.Form,
await GetValueCollectionAsync(request),
CultureInfo.CurrentCulture);
+
+ context.ValueProviders.Add(valueProvider);
}
private static async Task> GetValueCollectionAsync(HttpRequest request)
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/DefaultModelMetadata.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/DefaultModelMetadata.cs
index 84b146f45e..b36238d310 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/DefaultModelMetadata.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/DefaultModelMetadata.cs
@@ -82,7 +82,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
if (_details.BindingMetadata == null)
{
var context = new BindingMetadataProviderContext(Identity, _details.ModelAttributes);
- _detailsProvider.GetBindingMetadata(context);
+ _detailsProvider.CreateBindingMetadata(context);
_details.BindingMetadata = context.BindingMetadata;
}
@@ -103,7 +103,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
if (_details.DisplayMetadata == null)
{
var context = new DisplayMetadataProviderContext(Identity, _details.ModelAttributes);
- _detailsProvider.GetDisplayMetadata(context);
+ _detailsProvider.CreateDisplayMetadata(context);
_details.DisplayMetadata = context.DisplayMetadata;
}
@@ -124,7 +124,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
if (_details.ValidationMetadata == null)
{
var context = new ValidationMetadataProviderContext(Identity, _details.ModelAttributes);
- _detailsProvider.GetValidationMetadata(context);
+ _detailsProvider.CreateValidationMetadata(context);
_details.ValidationMetadata = context.ValidationMetadata;
}
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IBindingMetadataProvider.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IBindingMetadataProvider.cs
index f628369272..654784db5f 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IBindingMetadataProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IBindingMetadataProvider.cs
@@ -9,9 +9,9 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
public interface IBindingMetadataProvider : IMetadataDetailsProvider
{
///
- /// Gets the values for properties of .
+ /// Sets the values for properties of .
///
/// The .
- void GetBindingMetadata(BindingMetadataProviderContext context);
+ void CreateBindingMetadata(BindingMetadataProviderContext context);
}
}
\ No newline at end of file
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IDisplayMetadataProvider.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IDisplayMetadataProvider.cs
index b498e8c19b..a6e063da2a 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IDisplayMetadataProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IDisplayMetadataProvider.cs
@@ -9,9 +9,9 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
public interface IDisplayMetadataProvider : IMetadataDetailsProvider
{
///
- /// Gets the values for properties of .
+ /// Sets the values for properties of .
///
/// The .
- void GetDisplayMetadata(DisplayMetadataProviderContext context);
+ void CreateDisplayMetadata(DisplayMetadataProviderContext context);
}
}
\ No newline at end of file
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IValidationMetadataProvider.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IValidationMetadataProvider.cs
index 2728baa219..557ccc8c7b 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IValidationMetadataProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Metadata/IValidationMetadataProvider.cs
@@ -12,6 +12,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
/// Gets the values for properties of .
///
/// The .
- void GetValidationMetadata(ValidationMetadataProviderContext context);
+ void CreateValidationMetadata(ValidationMetadataProviderContext context);
}
}
\ No newline at end of file
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/QueryStringValueProviderFactory.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/QueryStringValueProviderFactory.cs
index 17d869dc47..bc109bcb30 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/QueryStringValueProviderFactory.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/QueryStringValueProviderFactory.cs
@@ -4,6 +4,7 @@
using System;
using System.Globalization;
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc.Internal;
namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
@@ -14,17 +15,21 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
public class QueryStringValueProviderFactory : IValueProviderFactory
{
///
- public Task GetValueProviderAsync(ActionContext context)
+ public Task CreateValueProviderAsync(ValueProviderFactoryContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
- return Task.FromResult(new QueryStringValueProvider(
+ var valueProvider = new QueryStringValueProvider(
BindingSource.Query,
- context.HttpContext.Request.Query,
- CultureInfo.InvariantCulture));
+ context.ActionContext.HttpContext.Request.Query,
+ CultureInfo.InvariantCulture);
+
+ context.ValueProviders.Add(valueProvider);
+
+ return TaskCache.CompletedTask;
}
}
}
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/RouteValueProviderFactory.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/RouteValueProviderFactory.cs
index b16cf4eae1..cb1cdb4552 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/RouteValueProviderFactory.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/RouteValueProviderFactory.cs
@@ -3,6 +3,7 @@
using System;
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc.Internal;
namespace Microsoft.AspNetCore.Mvc.ModelBinding
{
@@ -12,16 +13,20 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding
public class RouteValueProviderFactory : IValueProviderFactory
{
///
- public Task GetValueProviderAsync(ActionContext context)
+ public Task CreateValueProviderAsync(ValueProviderFactoryContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
- return Task.FromResult(new RouteValueProvider(
+ var valueProvider = new RouteValueProvider(
BindingSource.Path,
- context.RouteData.Values));
+ context.ActionContext.RouteData.Values);
+
+ context.ValueProviders.Add(valueProvider);
+
+ return TaskCache.CompletedTask;
}
}
}
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/CompositeClientModelValidatorProvider.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/CompositeClientModelValidatorProvider.cs
index 9913d4d4f5..e485b10ef0 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/CompositeClientModelValidatorProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/CompositeClientModelValidatorProvider.cs
@@ -33,7 +33,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
public IReadOnlyList ValidatorProviders { get; }
///
- public void GetValidators(ClientValidatorProviderContext context)
+ public void CreateValidators(ClientValidatorProviderContext context)
{
if (context == null)
{
@@ -43,7 +43,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
// Perf: Avoid allocations
for (var i = 0; i < ValidatorProviders.Count; i++)
{
- ValidatorProviders[i].GetValidators(context);
+ ValidatorProviders[i].CreateValidators(context);
}
}
}
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/CompositeModelValidatorProvider.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/CompositeModelValidatorProvider.cs
index 60162ca610..4fb2d86be3 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/CompositeModelValidatorProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/CompositeModelValidatorProvider.cs
@@ -33,12 +33,12 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
public IList ValidatorProviders { get; }
///
- public void GetValidators(ModelValidatorProviderContext context)
+ public void CreateValidators(ModelValidatorProviderContext context)
{
// Perf: Avoid allocations
for (var i = 0; i < ValidatorProviders.Count; i++)
{
- ValidatorProviders[i].GetValidators(context);
+ ValidatorProviders[i].CreateValidators(context);
}
}
}
diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/ValidationExcludeFilter.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/ValidationExcludeFilter.cs
index 312f452851..62799061cf 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/ValidationExcludeFilter.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/ValidationExcludeFilter.cs
@@ -59,7 +59,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
public string FullTypeName { get; }
///
- public void GetValidationMetadata(ValidationMetadataProviderContext context)
+ public void CreateValidationMetadata(ValidationMetadataProviderContext context)
{
if (context == null)
{
diff --git a/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsClientModelValidatorProvider.cs b/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsClientModelValidatorProvider.cs
index 6a268e72c8..f68f8a120f 100644
--- a/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsClientModelValidatorProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsClientModelValidatorProvider.cs
@@ -48,7 +48,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
///
- public void GetValidators(ClientValidatorProviderContext context)
+ public void CreateValidators(ClientValidatorProviderContext context)
{
if (context == null)
{
diff --git a/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsMetadataProvider.cs b/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsMetadataProvider.cs
index 65ad0f789e..44503ed7b7 100644
--- a/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsMetadataProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsMetadataProvider.cs
@@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
IValidationMetadataProvider
{
///
- public void GetBindingMetadata(BindingMetadataProviderContext context)
+ public void CreateBindingMetadata(BindingMetadataProviderContext context)
{
if (context == null)
{
@@ -36,7 +36,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
///
- public void GetDisplayMetadata(DisplayMetadataProviderContext context)
+ public void CreateDisplayMetadata(DisplayMetadataProviderContext context)
{
if (context == null)
{
@@ -219,7 +219,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
}
///
- public void GetValidationMetadata(ValidationMetadataProviderContext context)
+ public void CreateValidationMetadata(ValidationMetadataProviderContext context)
{
if (context == null)
{
diff --git a/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsModelValidatorProvider.cs b/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsModelValidatorProvider.cs
index a6500cf2e8..2444b81938 100644
--- a/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsModelValidatorProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DataAnnotationsModelValidatorProvider.cs
@@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
_stringLocalizerFactory = stringLocalizerFactory;
}
- public void GetValidators(ModelValidatorProviderContext context)
+ public void CreateValidators(ModelValidatorProviderContext context)
{
IStringLocalizer stringLocalizer = null;
if (_stringLocalizerFactory != null && _options.Value.DataAnnotationLocalizerProvider != null)
diff --git a/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DefaultClientModelValidatorProvider.cs b/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DefaultClientModelValidatorProvider.cs
index d6ee268e8d..2fb0fe4769 100644
--- a/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DefaultClientModelValidatorProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/DefaultClientModelValidatorProvider.cs
@@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
public class DefaultClientModelValidatorProvider : IClientModelValidatorProvider
{
///
- public void GetValidators(ClientValidatorProviderContext context)
+ public void CreateValidators(ClientValidatorProviderContext context)
{
if (context == null)
{
diff --git a/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/NumericClientModelValidatorProvider.cs b/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/NumericClientModelValidatorProvider.cs
index 31c62a3100..a2e182d381 100644
--- a/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/NumericClientModelValidatorProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Internal/NumericClientModelValidatorProvider.cs
@@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
public class NumericClientModelValidatorProvider : IClientModelValidatorProvider
{
///
- public void GetValidators(ClientValidatorProviderContext context)
+ public void CreateValidators(ClientValidatorProviderContext context)
{
if (context == null)
{
diff --git a/src/Microsoft.AspNetCore.Mvc.Formatters.Xml/ModelBinding/DataMemberRequiredBindingMetadataProvider.cs b/src/Microsoft.AspNetCore.Mvc.Formatters.Xml/ModelBinding/DataMemberRequiredBindingMetadataProvider.cs
index 75dcd8c185..d1c6002158 100644
--- a/src/Microsoft.AspNetCore.Mvc.Formatters.Xml/ModelBinding/DataMemberRequiredBindingMetadataProvider.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Formatters.Xml/ModelBinding/DataMemberRequiredBindingMetadataProvider.cs
@@ -14,7 +14,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
public class DataMemberRequiredBindingMetadataProvider : IBindingMetadataProvider
{
///
- public void GetBindingMetadata(BindingMetadataProviderContext context)
+ public void CreateBindingMetadata(BindingMetadataProviderContext context)
{
if (context == null)
{
diff --git a/test/Microsoft.AspNetCore.Mvc.Core.Test/ControllerBaseTest.cs b/test/Microsoft.AspNetCore.Mvc.Core.Test/ControllerBaseTest.cs
index 6584fe2068..8551781d81 100644
--- a/test/Microsoft.AspNetCore.Mvc.Core.Test/ControllerBaseTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Core.Test/ControllerBaseTest.cs
@@ -1509,7 +1509,7 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test
validator1.Validator = validator.Object;
var provider = new Mock();
- provider.Setup(v => v.GetValidators(It.IsAny()))
+ provider.Setup(v => v.CreateValidators(It.IsAny()))
.Callback(c => c.Results.Add(validator1));
var binder = new StubModelBinder();
@@ -1546,7 +1546,7 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test
validator1.Validator = validator.Object;
var provider = new Mock();
- provider.Setup(v => v.GetValidators(It.IsAny()))
+ provider.Setup(v => v.CreateValidators(It.IsAny()))
.Callback(c => c.Results.Add(validator1));
var binder = new StubModelBinder();
diff --git a/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/ClientValidatorCacheTest.cs b/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/ClientValidatorCacheTest.cs
index 0334a69858..584befa1da 100644
--- a/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/ClientValidatorCacheTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/ClientValidatorCacheTest.cs
@@ -81,7 +81,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private class ProviderWithNonReusableValidators : IClientModelValidatorProvider
{
- public void GetValidators(ClientValidatorProviderContext context)
+ public void CreateValidators(ClientValidatorProviderContext context)
{
for (var i = 0; i < context.Results.Count; i++)
{
diff --git a/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/DefaultBindingMetadataProviderTest.cs b/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/DefaultBindingMetadataProviderTest.cs
index 4390a3f99c..c6396828d4 100644
--- a/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/DefaultBindingMetadataProviderTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/DefaultBindingMetadataProviderTest.cs
@@ -11,7 +11,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public class DefaultModelMetadataBindingDetailsProviderTest
{
[Fact]
- public void GetBindingDetails_FindsBinderTypeProvider()
+ public void CreateBindingDetails_FindsBinderTypeProvider()
{
// Arrange
var attributes = new object[]
@@ -27,14 +27,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(typeof(HeaderModelBinder), context.BindingMetadata.BinderType);
}
[Fact]
- public void GetBindingDetails_FindsBinderTypeProvider_IfNullFallsBack()
+ public void CreateBindingDetails_FindsBinderTypeProvider_IfNullFallsBack()
{
// Arrange
var attributes = new object[]
@@ -51,14 +51,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(typeof(HeaderModelBinder), context.BindingMetadata.BinderType);
}
[Fact]
- public void GetBindingDetails_FindsModelName()
+ public void CreateBindingDetails_FindsModelName()
{
// Arrange
var attributes = new object[]
@@ -74,14 +74,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.Equal("Product", context.BindingMetadata.BinderModelName);
}
[Fact]
- public void GetBindingDetails_FindsModelName_IfNullFallsBack()
+ public void CreateBindingDetails_FindsModelName_IfNullFallsBack()
{
// Arrange
var attributes = new object[]
@@ -98,14 +98,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.Equal("Product", context.BindingMetadata.BinderModelName);
}
[Fact]
- public void GetBindingDetails_FindsBindingSource()
+ public void CreateBindingDetails_FindsBindingSource()
{
// Arrange
var attributes = new object[]
@@ -121,14 +121,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(BindingSource.Body, context.BindingMetadata.BindingSource);
}
[Fact]
- public void GetBindingDetails_FindsBindingSource_IfNullFallsBack()
+ public void CreateBindingDetails_FindsBindingSource_IfNullFallsBack()
{
// Arrange
var attributes = new object[]
@@ -145,14 +145,14 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(BindingSource.Body, context.BindingMetadata.BindingSource);
}
[Fact]
- public void GetBindingDetails_FindsBindingBehaviorNever_OnProperty()
+ public void CreateBindingDetails_FindsBindingBehaviorNever_OnProperty()
{
// Arrange
var propertyAttributes = new object[]
@@ -167,7 +167,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.False(context.BindingMetadata.IsBindingAllowed);
@@ -175,7 +175,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetBindingDetails_FindsBindNever_OnProperty()
+ public void CreateBindingDetails_FindsBindNever_OnProperty()
{
// Arrange
var propertyAttributes = new object[]
@@ -190,7 +190,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.False(context.BindingMetadata.IsBindingAllowed);
@@ -198,7 +198,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetBindingDetails_FindsBindingBehaviorOptional_OnProperty()
+ public void CreateBindingDetails_FindsBindingBehaviorOptional_OnProperty()
{
// Arrange
var propertyAttributes = new object[]
@@ -213,7 +213,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@@ -221,7 +221,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetBindingDetails_FindsBindingBehaviorRequired_OnProperty()
+ public void CreateBindingDetails_FindsBindingBehaviorRequired_OnProperty()
{
// Arrange
var propertyAttributes = new object[]
@@ -236,7 +236,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@@ -244,7 +244,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetBindingDetails_FindsBindRequired_OnProperty()
+ public void CreateBindingDetails_FindsBindRequired_OnProperty()
{
// Arrange
var propertyAttributes = new object[]
@@ -259,7 +259,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@@ -269,7 +269,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
// These attributes have conflicting behavior - the 'required' behavior should be used because
// of ordering.
[Fact]
- public void GetBindingDetails_UsesFirstAttribute()
+ public void CreateBindingDetails_UsesFirstAttribute()
{
// Arrange
var propertyAttributes = new object[]
@@ -285,7 +285,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@@ -293,7 +293,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetBindingDetails_FindsBindRequired_OnContainerClass()
+ public void CreateBindingDetails_FindsBindRequired_OnContainerClass()
{
// Arrange
var context = new BindingMetadataProviderContext(
@@ -303,7 +303,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@@ -311,7 +311,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetBindingDetails_FindsBindNever_OnContainerClass()
+ public void CreateBindingDetails_FindsBindNever_OnContainerClass()
{
// Arrange
var context = new BindingMetadataProviderContext(
@@ -321,7 +321,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.False(context.BindingMetadata.IsBindingAllowed);
@@ -329,7 +329,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetBindingDetails_FindsBindNever_OnBaseClass()
+ public void CreateBindingDetails_FindsBindNever_OnBaseClass()
{
// Arrange
var context = new BindingMetadataProviderContext(
@@ -339,7 +339,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.False(context.BindingMetadata.IsBindingAllowed);
@@ -347,7 +347,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetBindingDetails_OverrideBehaviorOnClass_OverrideWithOptional()
+ public void CreateBindingDetails_OverrideBehaviorOnClass_OverrideWithOptional()
{
// Arrange
var propertyAttributes = new object[]
@@ -362,7 +362,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@@ -370,7 +370,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetBindingDetails_OverrideBehaviorOnClass_OverrideWithRequired()
+ public void CreateBindingDetails_OverrideBehaviorOnClass_OverrideWithRequired()
{
// Arrange
var propertyAttributes = new object[]
@@ -385,7 +385,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@@ -393,7 +393,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetBindingDetails_OverrideInheritedBehaviorOnClass_OverrideWithRequired()
+ public void CreateBindingDetails_OverrideInheritedBehaviorOnClass_OverrideWithRequired()
{
// Arrange
var propertyAttributes = new object[]
@@ -408,7 +408,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@@ -416,7 +416,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetBindingDetails_OverrideBehaviorOnClass_OverrideWithNever()
+ public void CreateBindingDetails_OverrideBehaviorOnClass_OverrideWithNever()
{
// Arrange
var propertyAttributes = new object[]
@@ -431,7 +431,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.False(context.BindingMetadata.IsBindingAllowed);
@@ -440,7 +440,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
// This overrides an inherited class-level attribute with a different class-level attribute.
[Fact]
- public void GetBindingDetails_OverrideBehaviorOnBaseClass_OverrideWithRequired_OnClass()
+ public void CreateBindingDetails_OverrideBehaviorOnBaseClass_OverrideWithRequired_OnClass()
{
// Arrange
var context = new BindingMetadataProviderContext(
@@ -450,7 +450,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.True(context.BindingMetadata.IsBindingAllowed);
@@ -460,7 +460,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
[Theory]
[InlineData(true)]
[InlineData(false)]
- public void GetBindingDetails_BindingBehaviorLeftAlone_ForTypeMetadata(bool initialValue)
+ public void CreateBindingDetails_BindingBehaviorLeftAlone_ForTypeMetadata(bool initialValue)
{
// Arrange
var attributes = new object[]
@@ -479,7 +479,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(initialValue, context.BindingMetadata.IsBindingAllowed);
@@ -491,7 +491,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
[Theory]
[InlineData(true)]
[InlineData(false)]
- public void GetBindingDetails_BindingBehaviorLeftAlone_ForAttributeOnPropertyType(bool initialValue)
+ public void CreateBindingDetails_BindingBehaviorLeftAlone_ForAttributeOnPropertyType(bool initialValue)
{
// Arrange
var typeAttributes = new object[]
@@ -510,7 +510,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var provider = new DefaultBindingMetadataProvider(CreateMessageProvider());
// Act
- provider.GetBindingMetadata(context);
+ provider.CreateBindingMetadata(context);
// Assert
Assert.Equal(initialValue, context.BindingMetadata.IsBindingAllowed);
diff --git a/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/DefaultModelValidatorProviderTest.cs b/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/DefaultModelValidatorProviderTest.cs
index 65a95caca5..680d46ff30 100644
--- a/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/DefaultModelValidatorProviderTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/DefaultModelValidatorProviderTest.cs
@@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
public class DefaultModelValidatorProviderTest
{
[Fact]
- public void GetValidators_ForIValidatableObject()
+ public void CreateValidators_ForIValidatableObject()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
- validatorProvider.GetValidators(context);
+ validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@@ -36,7 +36,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetValidators_ModelValidatorAttributeOnClass()
+ public void CreateValidators_ModelValidatorAttributeOnClass()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@@ -46,7 +46,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
- validatorProvider.GetValidators(context);
+ validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@@ -56,7 +56,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetValidators_ModelValidatorAttributeOnProperty()
+ public void CreateValidators_ModelValidatorAttributeOnProperty()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@@ -68,7 +68,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
- validatorProvider.GetValidators(context);
+ validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@@ -78,7 +78,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetValidators_ModelValidatorAttributeOnPropertyAndClass()
+ public void CreateValidators_ModelValidatorAttributeOnPropertyAndClass()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@@ -90,7 +90,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
- validatorProvider.GetValidators(context);
+ validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@@ -101,7 +101,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetValidators_FromModelMetadataType_SingleValidator()
+ public void CreateValidators_FromModelMetadataType_SingleValidator()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@@ -113,7 +113,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
- validatorProvider.GetValidators(context);
+ validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
@@ -123,7 +123,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
}
[Fact]
- public void GetValidators_FromModelMetadataType_MergedValidators()
+ public void CreateValidators_FromModelMetadataType_MergedValidators()
{
// Arrange
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
@@ -135,7 +135,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
var context = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));
// Act
- validatorProvider.GetValidators(context);
+ validatorProvider.CreateValidators(context);
// Assert
var validatorItems = context.Results;
diff --git a/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/ValidatorCacheTest.cs b/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/ValidatorCacheTest.cs
index d4db82ff85..27cf152c97 100644
--- a/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/ValidatorCacheTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Core.Test/Internal/ValidatorCacheTest.cs
@@ -81,7 +81,7 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private class ProviderWithNonReusableValidators : IModelValidatorProvider
{
- public void GetValidators(ModelValidatorProviderContext context)
+ public void CreateValidators(ModelValidatorProviderContext context)
{
for (var i = 0; i < context.Results.Count; i++)
{
diff --git a/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/FormValueProviderFactoryTest.cs b/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/FormValueProviderFactoryTest.cs
index fac74737e2..2509a869a1 100644
--- a/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/FormValueProviderFactoryTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/FormValueProviderFactoryTest.cs
@@ -23,10 +23,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
var factory = new FormValueProviderFactory();
// Act
- var result = await factory.GetValueProviderAsync(context);
+ await factory.CreateValueProviderAsync(context);
// Assert
- Assert.Null(result);
+ Assert.Empty(context.ValueProviders);
}
[Theory]
@@ -41,14 +41,14 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
var factory = new FormValueProviderFactory();
// Act
- var result = await factory.GetValueProviderAsync(context);
+ await factory.CreateValueProviderAsync(context);
// Assert
- var valueProvider = Assert.IsType(result);
+ var valueProvider = Assert.IsType(Assert.Single(context.ValueProviders));
Assert.Equal(CultureInfo.CurrentCulture, valueProvider.Culture);
}
- private static ActionContext CreateContext(string contentType)
+ private static ValueProviderFactoryContext CreateContext(string contentType)
{
var context = new DefaultHttpContext();
context.Request.ContentType = contentType;
@@ -58,7 +58,9 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
context.Request.Form = new FormCollection(new Dictionary());
}
- return new ActionContext(context, new RouteData(), new ActionDescriptor());
+ var actionContext = new ActionContext(context, new RouteData(), new ActionDescriptor());
+
+ return new ValueProviderFactoryContext(actionContext);
}
}
}
diff --git a/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/JQueryFormValueProviderFactoryTest.cs b/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/JQueryFormValueProviderFactoryTest.cs
index 4963a3949b..a71fad4d73 100644
--- a/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/JQueryFormValueProviderFactoryTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/JQueryFormValueProviderFactoryTest.cs
@@ -47,10 +47,10 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
var factory = new JQueryFormValueProviderFactory();
// Act
- var result = await factory.GetValueProviderAsync(context);
+ await factory.CreateValueProviderAsync(context);
// Assert
- Assert.Null(result);
+ Assert.Empty(context.ValueProviders);
}
[Theory]
@@ -58,17 +58,17 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
[InlineData("application/x-www-form-urlencoded;charset=utf-8")]
[InlineData("multipart/form-data; boundary=----WebKitFormBoundarymx2fSWqWSd0OxQqq")]
[InlineData("multipart/form-data; boundary=----WebKitFormBoundarymx2fSWqWSd0OxQqq; charset=utf-8")]
- public async Task GetValueProviderAsync_ReturnsValueProvider_WithCurrentCulture(string contentType)
+ public async Task CreateValueProviderAsync_ReturnsValueProvider_WithCurrentCulture(string contentType)
{
// Arrange
var context = CreateContext(contentType, formValues: null);
var factory = new JQueryFormValueProviderFactory();
// Act
- var result = await factory.GetValueProviderAsync(context);
+ await factory.CreateValueProviderAsync(context);
// Assert
- var valueProvider = Assert.IsType(result);
+ var valueProvider = Assert.IsType(Assert.Single(context.ValueProviders));
Assert.Equal(CultureInfo.CurrentCulture, valueProvider.Culture);
}
@@ -109,14 +109,15 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
var factory = new JQueryFormValueProviderFactory();
// Act
- var valueProvider = await factory.GetValueProviderAsync(context);
- var result = valueProvider.GetValue(key);
+ await factory.CreateValueProviderAsync(context);
// Assert
+ var valueProvider = Assert.Single(context.ValueProviders);
+ var result = valueProvider.GetValue(key);
Assert.Equal("found", (string)result);
}
- private static ActionContext CreateContext(string contentType, Dictionary formValues)
+ private static ValueProviderFactoryContext CreateContext(string contentType, Dictionary formValues)
{
var context = new DefaultHttpContext();
context.Request.ContentType = contentType;
@@ -126,7 +127,9 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
context.Request.Form = new FormCollection(formValues ?? new Dictionary());
}
- return new ActionContext(context, new RouteData(), new ActionDescriptor());
+ var actionContext = new ActionContext(context, new RouteData(), new ActionDescriptor());
+
+ return new ValueProviderFactoryContext(actionContext);
}
}
}
diff --git a/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/Metadata/DefaultValidationMetadataProviderTest.cs b/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/Metadata/DefaultValidationMetadataProviderTest.cs
index 19f046d350..475c92f11b 100644
--- a/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/Metadata/DefaultValidationMetadataProviderTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/Metadata/DefaultValidationMetadataProviderTest.cs
@@ -23,7 +23,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
var context = new ValidationMetadataProviderContext(key, new ModelAttributes(attributes, new object[0]));
// Act
- provider.GetValidationMetadata(context);
+ provider.CreateValidationMetadata(context);
// Assert
var validatorMetadata = Assert.Single(context.ValidationMetadata.ValidatorMetadata);
@@ -42,7 +42,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
var context = new ValidationMetadataProviderContext(key, new ModelAttributes(attributes, new object[0]));
// Act
- provider.GetValidationMetadata(context);
+ provider.CreateValidationMetadata(context);
// Assert
var validatorMetadata = Assert.Single(context.ValidationMetadata.ValidatorMetadata);
@@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
context.ValidationMetadata.ValidatorMetadata.Add(attribute);
// Act
- provider.GetValidationMetadata(context);
+ provider.CreateValidationMetadata(context);
// Assert
var validatorMetadata = Assert.Single(context.ValidationMetadata.ValidatorMetadata);
diff --git a/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/QueryStringValueProviderFactoryTest.cs b/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/QueryStringValueProviderFactoryTest.cs
index 7f13e20698..092bc5c08d 100644
--- a/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/QueryStringValueProviderFactoryTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Core.Test/ModelBinding/QueryStringValueProviderFactoryTest.cs
@@ -24,13 +24,14 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Test
context.SetupGet(c => c.Items).Returns(new Dictionary