Pass InputFormatters in OBC
This removes the need to use IScopedInstance<ActionBindingContext> to get access to the formatters.
This commit is contained in:
parent
4b1a708ba1
commit
90805fa827
|
|
@ -1,6 +1,7 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// 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.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
using Microsoft.AspNet.Mvc.ModelBinding.Validation;
|
using Microsoft.AspNet.Mvc.ModelBinding.Validation;
|
||||||
|
|
||||||
|
|
@ -22,6 +23,11 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public HttpContext HttpContext { get; set; }
|
public HttpContext HttpContext { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the set of <see cref="IInputFormatter"/> instances associated with this context.
|
||||||
|
/// </summary>
|
||||||
|
public IList<IInputFormatter> InputFormatters { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets unaltered value provider collection.
|
/// Gets unaltered value provider collection.
|
||||||
/// Value providers can be filtered by specific model binders.
|
/// Value providers can be filtered by specific model binders.
|
||||||
|
|
|
||||||
|
|
@ -1050,6 +1050,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
MetadataProvider,
|
MetadataProvider,
|
||||||
BindingContext.ModelBinder,
|
BindingContext.ModelBinder,
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
BindingContext.InputFormatters,
|
||||||
ObjectValidator,
|
ObjectValidator,
|
||||||
BindingContext.ValidatorProvider);
|
BindingContext.ValidatorProvider);
|
||||||
}
|
}
|
||||||
|
|
@ -1088,6 +1089,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
MetadataProvider,
|
MetadataProvider,
|
||||||
BindingContext.ModelBinder,
|
BindingContext.ModelBinder,
|
||||||
BindingContext.ValueProvider,
|
BindingContext.ValueProvider,
|
||||||
|
BindingContext.InputFormatters,
|
||||||
ObjectValidator,
|
ObjectValidator,
|
||||||
BindingContext.ValidatorProvider,
|
BindingContext.ValidatorProvider,
|
||||||
includeExpressions);
|
includeExpressions);
|
||||||
|
|
@ -1126,6 +1128,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
MetadataProvider,
|
MetadataProvider,
|
||||||
BindingContext.ModelBinder,
|
BindingContext.ModelBinder,
|
||||||
BindingContext.ValueProvider,
|
BindingContext.ValueProvider,
|
||||||
|
BindingContext.InputFormatters,
|
||||||
ObjectValidator,
|
ObjectValidator,
|
||||||
BindingContext.ValidatorProvider,
|
BindingContext.ValidatorProvider,
|
||||||
predicate);
|
predicate);
|
||||||
|
|
@ -1167,6 +1170,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
MetadataProvider,
|
MetadataProvider,
|
||||||
BindingContext.ModelBinder,
|
BindingContext.ModelBinder,
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
BindingContext.InputFormatters,
|
||||||
ObjectValidator,
|
ObjectValidator,
|
||||||
BindingContext.ValidatorProvider,
|
BindingContext.ValidatorProvider,
|
||||||
includeExpressions);
|
includeExpressions);
|
||||||
|
|
@ -1207,6 +1211,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
MetadataProvider,
|
MetadataProvider,
|
||||||
BindingContext.ModelBinder,
|
BindingContext.ModelBinder,
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
BindingContext.InputFormatters,
|
||||||
ObjectValidator,
|
ObjectValidator,
|
||||||
BindingContext.ValidatorProvider,
|
BindingContext.ValidatorProvider,
|
||||||
predicate);
|
predicate);
|
||||||
|
|
@ -1243,6 +1248,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
MetadataProvider,
|
MetadataProvider,
|
||||||
BindingContext.ModelBinder,
|
BindingContext.ModelBinder,
|
||||||
BindingContext.ValueProvider,
|
BindingContext.ValueProvider,
|
||||||
|
BindingContext.InputFormatters,
|
||||||
ObjectValidator,
|
ObjectValidator,
|
||||||
BindingContext.ValidatorProvider);
|
BindingContext.ValidatorProvider);
|
||||||
}
|
}
|
||||||
|
|
@ -1283,6 +1289,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
MetadataProvider,
|
MetadataProvider,
|
||||||
BindingContext.ModelBinder,
|
BindingContext.ModelBinder,
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
BindingContext.InputFormatters,
|
||||||
ObjectValidator,
|
ObjectValidator,
|
||||||
BindingContext.ValidatorProvider,
|
BindingContext.ValidatorProvider,
|
||||||
predicate);
|
predicate);
|
||||||
|
|
|
||||||
|
|
@ -209,6 +209,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
{
|
{
|
||||||
return new OperationBindingContext
|
return new OperationBindingContext
|
||||||
{
|
{
|
||||||
|
InputFormatters = bindingContext.InputFormatters,
|
||||||
ModelBinder = bindingContext.ModelBinder,
|
ModelBinder = bindingContext.ModelBinder,
|
||||||
ValidatorProvider = bindingContext.ValidatorProvider,
|
ValidatorProvider = bindingContext.ValidatorProvider,
|
||||||
MetadataProvider = _modelMetadataProvider,
|
MetadataProvider = _modelMetadataProvider,
|
||||||
|
|
|
||||||
|
|
@ -28,11 +28,8 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
protected async override Task<ModelBindingResult> BindModelCoreAsync(
|
protected async override Task<ModelBindingResult> BindModelCoreAsync(
|
||||||
[NotNull] ModelBindingContext bindingContext)
|
[NotNull] ModelBindingContext bindingContext)
|
||||||
{
|
{
|
||||||
var requestServices = bindingContext.OperationBindingContext.HttpContext.RequestServices;
|
|
||||||
|
|
||||||
var httpContext = bindingContext.OperationBindingContext.HttpContext;
|
var httpContext = bindingContext.OperationBindingContext.HttpContext;
|
||||||
var formatters = requestServices
|
var formatters = bindingContext.OperationBindingContext.InputFormatters;
|
||||||
.GetRequiredService<IScopedInstance<ActionBindingContext>>().Value.InputFormatters;
|
|
||||||
|
|
||||||
var formatterContext = new InputFormatterContext(
|
var formatterContext = new InputFormatterContext(
|
||||||
httpContext,
|
httpContext,
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,9 @@ namespace Microsoft.AspNet.Mvc
|
||||||
/// <param name="metadataProvider">The provider used for reading metadata for the model type.</param>
|
/// <param name="metadataProvider">The provider used for reading metadata for the model type.</param>
|
||||||
/// <param name="modelBinder">The <see cref="IModelBinder"/> used for binding.</param>
|
/// <param name="modelBinder">The <see cref="IModelBinder"/> used for binding.</param>
|
||||||
/// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param>
|
/// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param>
|
||||||
|
/// <param name="inputFormatters">
|
||||||
|
/// The set of <see cref="IInputFormatter"/> instances for deserializing the body.
|
||||||
|
/// </param>
|
||||||
/// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the
|
/// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the
|
||||||
/// bound values.</param>
|
/// bound values.</param>
|
||||||
/// <param name="validatorProvider">The <see cref="IModelValidatorProvider"/> used for executing validation
|
/// <param name="validatorProvider">The <see cref="IModelValidatorProvider"/> used for executing validation
|
||||||
|
|
@ -48,6 +51,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
[NotNull] IModelMetadataProvider metadataProvider,
|
[NotNull] IModelMetadataProvider metadataProvider,
|
||||||
[NotNull] IModelBinder modelBinder,
|
[NotNull] IModelBinder modelBinder,
|
||||||
[NotNull] IValueProvider valueProvider,
|
[NotNull] IValueProvider valueProvider,
|
||||||
|
[NotNull] IList<IInputFormatter> inputFormatters,
|
||||||
[NotNull] IObjectModelValidator objectModelValidator,
|
[NotNull] IObjectModelValidator objectModelValidator,
|
||||||
[NotNull] IModelValidatorProvider validatorProvider)
|
[NotNull] IModelValidatorProvider validatorProvider)
|
||||||
where TModel : class
|
where TModel : class
|
||||||
|
|
@ -61,6 +65,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
modelBinder,
|
modelBinder,
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
inputFormatters,
|
||||||
objectModelValidator,
|
objectModelValidator,
|
||||||
validatorProvider,
|
validatorProvider,
|
||||||
predicate: (context, propertyName) => true);
|
predicate: (context, propertyName) => true);
|
||||||
|
|
@ -81,6 +86,9 @@ namespace Microsoft.AspNet.Mvc
|
||||||
/// <param name="metadataProvider">The provider used for reading metadata for the model type.</param>
|
/// <param name="metadataProvider">The provider used for reading metadata for the model type.</param>
|
||||||
/// <param name="modelBinder">The <see cref="IModelBinder"/> used for binding.</param>
|
/// <param name="modelBinder">The <see cref="IModelBinder"/> used for binding.</param>
|
||||||
/// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param>
|
/// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param>
|
||||||
|
/// <param name="inputFormatters">
|
||||||
|
/// The set of <see cref="IInputFormatter"/> instances for deserializing the body.
|
||||||
|
/// </param>
|
||||||
/// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the
|
/// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the
|
||||||
/// bound values.</param>
|
/// bound values.</param>
|
||||||
/// <param name="validatorProvider">The <see cref="IModelValidatorProvider"/> used for executing validation
|
/// <param name="validatorProvider">The <see cref="IModelValidatorProvider"/> used for executing validation
|
||||||
|
|
@ -97,6 +105,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
[NotNull] IModelMetadataProvider metadataProvider,
|
[NotNull] IModelMetadataProvider metadataProvider,
|
||||||
[NotNull] IModelBinder modelBinder,
|
[NotNull] IModelBinder modelBinder,
|
||||||
[NotNull] IValueProvider valueProvider,
|
[NotNull] IValueProvider valueProvider,
|
||||||
|
[NotNull] IList<IInputFormatter> inputFormatters,
|
||||||
[NotNull] IObjectModelValidator objectModelValidator,
|
[NotNull] IObjectModelValidator objectModelValidator,
|
||||||
[NotNull] IModelValidatorProvider validatorProvider,
|
[NotNull] IModelValidatorProvider validatorProvider,
|
||||||
[NotNull] params Expression<Func<TModel, object>>[] includeExpressions)
|
[NotNull] params Expression<Func<TModel, object>>[] includeExpressions)
|
||||||
|
|
@ -113,6 +122,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
modelBinder,
|
modelBinder,
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
inputFormatters,
|
||||||
objectModelValidator,
|
objectModelValidator,
|
||||||
validatorProvider,
|
validatorProvider,
|
||||||
predicate: predicate);
|
predicate: predicate);
|
||||||
|
|
@ -133,6 +143,9 @@ namespace Microsoft.AspNet.Mvc
|
||||||
/// <param name="metadataProvider">The provider used for reading metadata for the model type.</param>
|
/// <param name="metadataProvider">The provider used for reading metadata for the model type.</param>
|
||||||
/// <param name="modelBinder">The <see cref="IModelBinder"/> used for binding.</param>
|
/// <param name="modelBinder">The <see cref="IModelBinder"/> used for binding.</param>
|
||||||
/// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param>
|
/// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param>
|
||||||
|
/// <param name="inputFormatters">
|
||||||
|
/// The set of <see cref="IInputFormatter"/> instances for deserializing the body.
|
||||||
|
/// </param>
|
||||||
/// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the
|
/// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the
|
||||||
/// bound values.</param>
|
/// bound values.</param>
|
||||||
/// <param name="validatorProvider">The <see cref="IModelValidatorProvider"/> used for executing validation
|
/// <param name="validatorProvider">The <see cref="IModelValidatorProvider"/> used for executing validation
|
||||||
|
|
@ -148,6 +161,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
[NotNull] IModelMetadataProvider metadataProvider,
|
[NotNull] IModelMetadataProvider metadataProvider,
|
||||||
[NotNull] IModelBinder modelBinder,
|
[NotNull] IModelBinder modelBinder,
|
||||||
[NotNull] IValueProvider valueProvider,
|
[NotNull] IValueProvider valueProvider,
|
||||||
|
[NotNull] IList<IInputFormatter> inputFormatters,
|
||||||
[NotNull] IObjectModelValidator objectModelValidator,
|
[NotNull] IObjectModelValidator objectModelValidator,
|
||||||
[NotNull] IModelValidatorProvider validatorProvider,
|
[NotNull] IModelValidatorProvider validatorProvider,
|
||||||
[NotNull] Func<ModelBindingContext, string, bool> predicate)
|
[NotNull] Func<ModelBindingContext, string, bool> predicate)
|
||||||
|
|
@ -162,6 +176,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
modelBinder,
|
modelBinder,
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
inputFormatters,
|
||||||
objectModelValidator,
|
objectModelValidator,
|
||||||
validatorProvider,
|
validatorProvider,
|
||||||
predicate: predicate);
|
predicate: predicate);
|
||||||
|
|
@ -182,6 +197,9 @@ namespace Microsoft.AspNet.Mvc
|
||||||
/// <param name="metadataProvider">The provider used for reading metadata for the model type.</param>
|
/// <param name="metadataProvider">The provider used for reading metadata for the model type.</param>
|
||||||
/// <param name="modelBinder">The <see cref="IModelBinder"/> used for binding.</param>
|
/// <param name="modelBinder">The <see cref="IModelBinder"/> used for binding.</param>
|
||||||
/// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param>
|
/// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param>
|
||||||
|
/// <param name="inputFormatters">
|
||||||
|
/// The set of <see cref="IInputFormatter"/> instances for deserializing the body.
|
||||||
|
/// </param>
|
||||||
/// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the
|
/// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the
|
||||||
/// bound values.</param>
|
/// bound values.</param>
|
||||||
/// <param name="validatorProvider">The <see cref="IModelValidatorProvider"/> used for executing validation
|
/// <param name="validatorProvider">The <see cref="IModelValidatorProvider"/> used for executing validation
|
||||||
|
|
@ -196,6 +214,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
[NotNull] IModelMetadataProvider metadataProvider,
|
[NotNull] IModelMetadataProvider metadataProvider,
|
||||||
[NotNull] IModelBinder modelBinder,
|
[NotNull] IModelBinder modelBinder,
|
||||||
[NotNull] IValueProvider valueProvider,
|
[NotNull] IValueProvider valueProvider,
|
||||||
|
[NotNull] IList<IInputFormatter> inputFormatters,
|
||||||
[NotNull] IObjectModelValidator objectModelValidator,
|
[NotNull] IObjectModelValidator objectModelValidator,
|
||||||
[NotNull] IModelValidatorProvider validatorProvider)
|
[NotNull] IModelValidatorProvider validatorProvider)
|
||||||
{
|
{
|
||||||
|
|
@ -209,6 +228,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
modelBinder,
|
modelBinder,
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
inputFormatters,
|
||||||
objectModelValidator,
|
objectModelValidator,
|
||||||
validatorProvider,
|
validatorProvider,
|
||||||
predicate: (context, propertyName) => true);
|
predicate: (context, propertyName) => true);
|
||||||
|
|
@ -229,6 +249,9 @@ namespace Microsoft.AspNet.Mvc
|
||||||
/// <param name="metadataProvider">The provider used for reading metadata for the model type.</param>
|
/// <param name="metadataProvider">The provider used for reading metadata for the model type.</param>
|
||||||
/// <param name="modelBinder">The <see cref="IModelBinder"/> used for binding.</param>
|
/// <param name="modelBinder">The <see cref="IModelBinder"/> used for binding.</param>
|
||||||
/// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param>
|
/// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param>
|
||||||
|
/// <param name="inputFormatters">
|
||||||
|
/// The set of <see cref="IInputFormatter"/> instances for deserializing the body.
|
||||||
|
/// </param>
|
||||||
/// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the
|
/// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the
|
||||||
/// bound values.</param>
|
/// bound values.</param>
|
||||||
/// <param name="validatorProvider">The <see cref="IModelValidatorProvider"/> used for executing validation
|
/// <param name="validatorProvider">The <see cref="IModelValidatorProvider"/> used for executing validation
|
||||||
|
|
@ -245,6 +268,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
[NotNull] IModelMetadataProvider metadataProvider,
|
[NotNull] IModelMetadataProvider metadataProvider,
|
||||||
[NotNull] IModelBinder modelBinder,
|
[NotNull] IModelBinder modelBinder,
|
||||||
[NotNull] IValueProvider valueProvider,
|
[NotNull] IValueProvider valueProvider,
|
||||||
|
[NotNull] IList<IInputFormatter> inputFormatters,
|
||||||
[NotNull] IObjectModelValidator objectModelValidator,
|
[NotNull] IObjectModelValidator objectModelValidator,
|
||||||
[NotNull] IModelValidatorProvider validatorProvider,
|
[NotNull] IModelValidatorProvider validatorProvider,
|
||||||
[NotNull] Func<ModelBindingContext, string, bool> predicate)
|
[NotNull] Func<ModelBindingContext, string, bool> predicate)
|
||||||
|
|
@ -264,6 +288,7 @@ namespace Microsoft.AspNet.Mvc
|
||||||
|
|
||||||
var operationBindingContext = new OperationBindingContext
|
var operationBindingContext = new OperationBindingContext
|
||||||
{
|
{
|
||||||
|
InputFormatters = inputFormatters,
|
||||||
ModelBinder = modelBinder,
|
ModelBinder = modelBinder,
|
||||||
ValidatorProvider = validatorProvider,
|
ValidatorProvider = validatorProvider,
|
||||||
MetadataProvider = metadataProvider,
|
MetadataProvider = metadataProvider,
|
||||||
|
|
|
||||||
|
|
@ -234,7 +234,10 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
httpContext = new DefaultHttpContext();
|
httpContext = new DefaultHttpContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateServiceProvider(httpContext, inputFormatters ?? Enumerable.Empty<IInputFormatter>());
|
if (inputFormatters == null)
|
||||||
|
{
|
||||||
|
inputFormatters = Enumerable.Empty<IInputFormatter>();
|
||||||
|
}
|
||||||
|
|
||||||
if (metadataProvider == null)
|
if (metadataProvider == null)
|
||||||
{
|
{
|
||||||
|
|
@ -243,6 +246,7 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
|
|
||||||
var operationBindingContext = new OperationBindingContext
|
var operationBindingContext = new OperationBindingContext
|
||||||
{
|
{
|
||||||
|
InputFormatters = inputFormatters.ToList(),
|
||||||
ModelBinder = new BodyModelBinder(),
|
ModelBinder = new BodyModelBinder(),
|
||||||
MetadataProvider = metadataProvider,
|
MetadataProvider = metadataProvider,
|
||||||
HttpContext = httpContext,
|
HttpContext = httpContext,
|
||||||
|
|
@ -261,26 +265,6 @@ namespace Microsoft.AspNet.Mvc.ModelBinding
|
||||||
return bindingContext;
|
return bindingContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void UpdateServiceProvider(
|
|
||||||
HttpContext httpContext,
|
|
||||||
IEnumerable<IInputFormatter> inputFormatters)
|
|
||||||
{
|
|
||||||
var serviceProvider = new ServiceCollection();
|
|
||||||
var bindingContext = new ActionBindingContext()
|
|
||||||
{
|
|
||||||
InputFormatters = inputFormatters.ToArray(),
|
|
||||||
};
|
|
||||||
|
|
||||||
var bindingContextAccessor = new MockScopedInstance<ActionBindingContext>()
|
|
||||||
{
|
|
||||||
Value = bindingContext,
|
|
||||||
};
|
|
||||||
serviceProvider.AddInstance<IScopedInstance<ActionBindingContext>>(bindingContextAccessor);
|
|
||||||
serviceProvider.AddInstance(CreateActionContext(httpContext));
|
|
||||||
|
|
||||||
httpContext.RequestServices = serviceProvider.BuildServiceProvider();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static IScopedInstance<ActionContext> CreateActionContext(HttpContext context)
|
private static IScopedInstance<ActionContext> CreateActionContext(HttpContext context)
|
||||||
{
|
{
|
||||||
return CreateActionContext(context, (new Mock<IRouter>()).Object);
|
return CreateActionContext(context, (new Mock<IRouter>()).Object);
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
GetCompositeBinder(binder.Object),
|
GetCompositeBinder(binder.Object),
|
||||||
Mock.Of<IValueProvider>(),
|
Mock.Of<IValueProvider>(),
|
||||||
|
new List<IInputFormatter>(),
|
||||||
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], metadataProvider),
|
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], metadataProvider),
|
||||||
Mock.Of<IModelValidatorProvider>());
|
Mock.Of<IModelValidatorProvider>());
|
||||||
|
|
||||||
|
|
@ -78,6 +79,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
modelMetadataProvider,
|
modelMetadataProvider,
|
||||||
GetCompositeBinder(binders),
|
GetCompositeBinder(binders),
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
new List<IInputFormatter>(),
|
||||||
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], modelMetadataProvider),
|
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], modelMetadataProvider),
|
||||||
validator);
|
validator);
|
||||||
|
|
||||||
|
|
@ -118,6 +120,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
GetCompositeBinder(binders),
|
GetCompositeBinder(binders),
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
new List<IInputFormatter>(),
|
||||||
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], metadataProvider),
|
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], metadataProvider),
|
||||||
validator);
|
validator);
|
||||||
|
|
||||||
|
|
@ -147,6 +150,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
GetCompositeBinder(binder.Object),
|
GetCompositeBinder(binder.Object),
|
||||||
Mock.Of<IValueProvider>(),
|
Mock.Of<IValueProvider>(),
|
||||||
|
new List<IInputFormatter>(),
|
||||||
Mock.Of<IObjectModelValidator>(),
|
Mock.Of<IObjectModelValidator>(),
|
||||||
Mock.Of<IModelValidatorProvider>(),
|
Mock.Of<IModelValidatorProvider>(),
|
||||||
includePredicate);
|
includePredicate);
|
||||||
|
|
@ -202,6 +206,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
GetCompositeBinder(binders),
|
GetCompositeBinder(binders),
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
new List<IInputFormatter>(),
|
||||||
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], metadataProvider),
|
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], metadataProvider),
|
||||||
validator,
|
validator,
|
||||||
includePredicate);
|
includePredicate);
|
||||||
|
|
@ -233,6 +238,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
GetCompositeBinder(binder.Object),
|
GetCompositeBinder(binder.Object),
|
||||||
Mock.Of<IValueProvider>(),
|
Mock.Of<IValueProvider>(),
|
||||||
|
new List<IInputFormatter>(),
|
||||||
Mock.Of<IObjectModelValidator>(),
|
Mock.Of<IObjectModelValidator>(),
|
||||||
Mock.Of<IModelValidatorProvider>(),
|
Mock.Of<IModelValidatorProvider>(),
|
||||||
m => m.IncludedProperty );
|
m => m.IncludedProperty );
|
||||||
|
|
@ -284,6 +290,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
TestModelMetadataProvider.CreateDefaultProvider(),
|
TestModelMetadataProvider.CreateDefaultProvider(),
|
||||||
GetCompositeBinder(binders),
|
GetCompositeBinder(binders),
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
new List<IInputFormatter>(),
|
||||||
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], metadataProvider),
|
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], metadataProvider),
|
||||||
validator,
|
validator,
|
||||||
m => m.IncludedProperty,
|
m => m.IncludedProperty,
|
||||||
|
|
@ -336,6 +343,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
GetCompositeBinder(binders),
|
GetCompositeBinder(binders),
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
new List<IInputFormatter>(),
|
||||||
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], metadataProvider),
|
new DefaultObjectValidator(new IExcludeTypeValidationFilter[0], metadataProvider),
|
||||||
validator);
|
validator);
|
||||||
|
|
||||||
|
|
@ -487,6 +495,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
metadataProvider: metadataProvider,
|
metadataProvider: metadataProvider,
|
||||||
modelBinder: GetCompositeBinder(binder.Object),
|
modelBinder: GetCompositeBinder(binder.Object),
|
||||||
valueProvider: Mock.Of<IValueProvider>(),
|
valueProvider: Mock.Of<IValueProvider>(),
|
||||||
|
inputFormatters: new List<IInputFormatter>(),
|
||||||
objectModelValidator: Mock.Of<IObjectModelValidator>(),
|
objectModelValidator: Mock.Of<IObjectModelValidator>(),
|
||||||
validatorProvider: Mock.Of<IModelValidatorProvider>(),
|
validatorProvider: Mock.Of<IModelValidatorProvider>(),
|
||||||
predicate: includePredicate);
|
predicate: includePredicate);
|
||||||
|
|
@ -544,6 +553,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
GetCompositeBinder(binders),
|
GetCompositeBinder(binders),
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
new List<IInputFormatter>(),
|
||||||
new DefaultObjectValidator(
|
new DefaultObjectValidator(
|
||||||
new IExcludeTypeValidationFilter[0],
|
new IExcludeTypeValidationFilter[0],
|
||||||
metadataProvider),
|
metadataProvider),
|
||||||
|
|
@ -578,6 +588,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
metadataProvider: metadataProvider,
|
metadataProvider: metadataProvider,
|
||||||
modelBinder: GetCompositeBinder(binder.Object),
|
modelBinder: GetCompositeBinder(binder.Object),
|
||||||
valueProvider: Mock.Of<IValueProvider>(),
|
valueProvider: Mock.Of<IValueProvider>(),
|
||||||
|
inputFormatters: new List<IInputFormatter>(),
|
||||||
objectModelValidator: Mock.Of<IObjectModelValidator>(),
|
objectModelValidator: Mock.Of<IObjectModelValidator>(),
|
||||||
validatorProvider: Mock.Of<IModelValidatorProvider>());
|
validatorProvider: Mock.Of<IModelValidatorProvider>());
|
||||||
|
|
||||||
|
|
@ -618,6 +629,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
TestModelMetadataProvider.CreateDefaultProvider(),
|
TestModelMetadataProvider.CreateDefaultProvider(),
|
||||||
GetCompositeBinder(binders),
|
GetCompositeBinder(binders),
|
||||||
valueProvider,
|
valueProvider,
|
||||||
|
new List<IInputFormatter>(),
|
||||||
new DefaultObjectValidator(
|
new DefaultObjectValidator(
|
||||||
new IExcludeTypeValidationFilter[0],
|
new IExcludeTypeValidationFilter[0],
|
||||||
metadataProvider),
|
metadataProvider),
|
||||||
|
|
@ -652,6 +664,7 @@ namespace Microsoft.AspNet.Mvc.Test
|
||||||
metadataProvider,
|
metadataProvider,
|
||||||
GetCompositeBinder(binder.Object),
|
GetCompositeBinder(binder.Object),
|
||||||
Mock.Of<IValueProvider>(),
|
Mock.Of<IValueProvider>(),
|
||||||
|
new List<IInputFormatter>(),
|
||||||
new DefaultObjectValidator(
|
new DefaultObjectValidator(
|
||||||
new IExcludeTypeValidationFilter[0],
|
new IExcludeTypeValidationFilter[0],
|
||||||
metadataProvider),
|
metadataProvider),
|
||||||
|
|
|
||||||
|
|
@ -49,11 +49,7 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests
|
||||||
request.ContentType = "application/json";
|
request.ContentType = "application/json";
|
||||||
});
|
});
|
||||||
|
|
||||||
var actionContext = operationContext
|
var modelState = new ModelStateDictionary();
|
||||||
.HttpContext
|
|
||||||
.RequestServices
|
|
||||||
.GetRequiredService<IScopedInstance<ActionContext>>().Value;
|
|
||||||
var modelState = actionContext.ModelState;
|
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, modelState, operationContext);
|
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, modelState, operationContext);
|
||||||
|
|
@ -140,9 +136,7 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests
|
||||||
request.ContentType = "application/json";
|
request.ContentType = "application/json";
|
||||||
});
|
});
|
||||||
|
|
||||||
var httpContext = operationContext.HttpContext;
|
var modelState = new ModelStateDictionary();
|
||||||
var actionContext = httpContext.RequestServices.GetRequiredService<IScopedInstance<ActionContext>>().Value;
|
|
||||||
var modelState = actionContext.ModelState;
|
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, modelState, operationContext);
|
var modelBindingResult = await argumentBinder.BindModelAsync(parameter, modelState, operationContext);
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests
|
||||||
{
|
{
|
||||||
BodyBindingState = BodyBindingState.NotBodyBased,
|
BodyBindingState = BodyBindingState.NotBodyBased,
|
||||||
HttpContext = httpContext,
|
HttpContext = httpContext,
|
||||||
|
InputFormatters = actionBindingContext.InputFormatters,
|
||||||
MetadataProvider = TestModelMetadataProvider.CreateDefaultProvider(),
|
MetadataProvider = TestModelMetadataProvider.CreateDefaultProvider(),
|
||||||
ValidatorProvider = actionBindingContext.ValidatorProvider,
|
ValidatorProvider = actionBindingContext.ValidatorProvider,
|
||||||
ValueProvider = actionBindingContext.ValueProvider,
|
ValueProvider = actionBindingContext.ValueProvider,
|
||||||
|
|
|
||||||
|
|
@ -576,6 +576,7 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests
|
||||||
operationContext.MetadataProvider,
|
operationContext.MetadataProvider,
|
||||||
operationContext.ModelBinder,
|
operationContext.ModelBinder,
|
||||||
operationContext.ValueProvider,
|
operationContext.ValueProvider,
|
||||||
|
operationContext.InputFormatters,
|
||||||
ModelBindingTestHelper.GetObjectValidator(),
|
ModelBindingTestHelper.GetObjectValidator(),
|
||||||
operationContext.ValidatorProvider);
|
operationContext.ValidatorProvider);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue