Fix #4801 Rename ValidationExcludeFilter

'ValidationExcludeFilter' -> 'SuppressChildValidationMetadataProvider'

Also moved to .ModelBinding for improved discoverability. There aren't
many reasons user code would have a using for .Validation.
This commit is contained in:
Ryan Nowak 2016-06-09 10:07:41 -07:00
parent baf0b6a5c7
commit 31ec88526a
9 changed files with 33 additions and 33 deletions

View File

@ -86,11 +86,11 @@ namespace Microsoft.AspNetCore.Mvc.Internal
options.ModelValidatorProviders.Add(new DefaultModelValidatorProvider()); options.ModelValidatorProviders.Add(new DefaultModelValidatorProvider());
// Add types to be excluded from Validation // Add types to be excluded from Validation
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter(typeof(Type))); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(Type)));
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter(typeof(Uri))); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(Uri)));
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter(typeof(CancellationToken))); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(CancellationToken)));
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter(typeof(IFormFile))); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(IFormFile)));
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter(typeof(IFormCollection))); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(IFormCollection)));
} }
} }
} }

View File

@ -6,22 +6,22 @@ using System.Diagnostics;
using System.Reflection; using System.Reflection;
using Microsoft.AspNetCore.Mvc.ModelBinding.Metadata; using Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;
namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation namespace Microsoft.AspNetCore.Mvc.ModelBinding
{ {
/// <summary> /// <summary>
/// An <see cref="IValidationMetadataProvider"/> which configures <see cref="ModelMetadata.ValidateChildren"/> to /// An <see cref="IValidationMetadataProvider"/> which configures <see cref="ModelMetadata.ValidateChildren"/> to
/// <c>false</c> for matching types. /// <c>false</c> for matching types.
/// </summary> /// </summary>
public class ValidationExcludeFilter : IValidationMetadataProvider public class SuppressChildValidationMetadataProvider : IValidationMetadataProvider
{ {
/// <summary> /// <summary>
/// Creates a new <see cref="ValidationExcludeFilter"/> for the given <paramref name="type"/>. /// Creates a new <see cref="SuppressChildValidationMetadataProvider"/> for the given <paramref name="type"/>.
/// </summary> /// </summary>
/// <param name="type"> /// <param name="type">
/// The <see cref="Type"/>. This <see cref="Type"/> and all assignable values will have /// The <see cref="Type"/>. This <see cref="Type"/> and all assignable values will have
/// <see cref="ModelMetadata.ValidateChildren"/> set to <c>false</c>. /// <see cref="ModelMetadata.ValidateChildren"/> set to <c>false</c>.
/// </param> /// </param>
public ValidationExcludeFilter(Type type) public SuppressChildValidationMetadataProvider(Type type)
{ {
if (type == null) if (type == null)
{ {
@ -32,13 +32,13 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation
} }
/// <summary> /// <summary>
/// Creates a new <see cref="ValidationExcludeFilter"/> for the given <paramref name="fullTypeName"/>. /// Creates a new <see cref="SuppressChildValidationMetadataProvider"/> for the given <paramref name="fullTypeName"/>.
/// </summary> /// </summary>
/// <param name="fullTypeName"> /// <param name="fullTypeName">
/// The type full name. This type and all of its subclasses will have /// The type full name. This type and all of its subclasses will have
/// <see cref="ModelMetadata.ValidateChildren"/> set to <c>false</c>. /// <see cref="ModelMetadata.ValidateChildren"/> set to <c>false</c>.
/// </param> /// </param>
public ValidationExcludeFilter(string fullTypeName) public SuppressChildValidationMetadataProvider(string fullTypeName)
{ {
if (fullTypeName == null) if (fullTypeName == null)
{ {

View File

@ -2,7 +2,7 @@
// 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.Buffers; using System.Buffers;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.ObjectPool; using Microsoft.Extensions.ObjectPool;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
@ -64,7 +64,7 @@ namespace Microsoft.AspNetCore.Mvc.Formatters.Json.Internal
options.FormatterMappings.SetMediaTypeMappingForFormat("json", MediaTypeHeaderValue.Parse("application/json")); options.FormatterMappings.SetMediaTypeMappingForFormat("json", MediaTypeHeaderValue.Parse("application/json"));
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter(typeof(JToken))); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(JToken)));
} }
} }
} }

View File

@ -2,7 +2,7 @@
// 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 Microsoft.AspNetCore.Mvc.ModelBinding.Metadata; using Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
namespace Microsoft.AspNetCore.Mvc.Formatters.Xml.Internal namespace Microsoft.AspNetCore.Mvc.Formatters.Xml.Internal
@ -32,8 +32,8 @@ namespace Microsoft.AspNetCore.Mvc.Formatters.Xml.Internal
options.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter()); options.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter());
options.InputFormatters.Add(new XmlDataContractSerializerInputFormatter()); options.InputFormatters.Add(new XmlDataContractSerializerInputFormatter());
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter("System.Xml.Linq.XObject")); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider("System.Xml.Linq.XObject"));
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter("System.Xml.XmlNode")); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider("System.Xml.XmlNode"));
} }
} }
} }

View File

@ -3,7 +3,7 @@
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Formatting; using System.Net.Http.Formatting;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
@ -33,8 +33,8 @@ namespace Microsoft.AspNetCore.Mvc.WebApiCompatShim
// Add a formatter to write out an HttpResponseMessage to the response // Add a formatter to write out an HttpResponseMessage to the response
options.OutputFormatters.Insert(0, new HttpResponseMessageOutputFormatter()); options.OutputFormatters.Insert(0, new HttpResponseMessageOutputFormatter());
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter(typeof(HttpRequestMessage))); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(HttpRequestMessage)));
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter(typeof(HttpResponseMessage))); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(HttpResponseMessage)));
} }
public void Configure(WebApiCompatShimOptions options) public void Configure(WebApiCompatShimOptions options)

View File

@ -1068,10 +1068,10 @@ namespace Microsoft.AspNetCore.Mvc.Internal
private static DefaultObjectValidator CreateValidator(Type excludedType) private static DefaultObjectValidator CreateValidator(Type excludedType)
{ {
var excludeFilters = new List<ValidationExcludeFilter>(); var excludeFilters = new List<SuppressChildValidationMetadataProvider>();
if (excludedType != null) if (excludedType != null)
{ {
excludeFilters.Add(new ValidationExcludeFilter(excludedType)); excludeFilters.Add(new SuppressChildValidationMetadataProvider(excludedType));
} }
var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider(excludeFilters.ToArray()); var metadataProvider = TestModelMetadataProvider.CreateDefaultProvider(excludeFilters.ToArray());

View File

@ -1272,7 +1272,7 @@ namespace Microsoft.AspNetCore.Mvc.IntegrationTests
}, },
options => options =>
{ {
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter(typeof(Address))); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(Address)));
testOptions = options; testOptions = options;
}); });

View File

@ -162,44 +162,44 @@ namespace Microsoft.AspNetCore.Mvc
provider => Assert.IsType<DefaultValidationMetadataProvider>(provider), provider => Assert.IsType<DefaultValidationMetadataProvider>(provider),
provider => provider =>
{ {
var excludeFilter = Assert.IsType<ValidationExcludeFilter>(provider); var excludeFilter = Assert.IsType<SuppressChildValidationMetadataProvider>(provider);
Assert.Equal(typeof(Type), excludeFilter.Type); Assert.Equal(typeof(Type), excludeFilter.Type);
}, },
provider => provider =>
{ {
var excludeFilter = Assert.IsType<ValidationExcludeFilter>(provider); var excludeFilter = Assert.IsType<SuppressChildValidationMetadataProvider>(provider);
Assert.Equal(typeof(Uri), excludeFilter.Type); Assert.Equal(typeof(Uri), excludeFilter.Type);
}, },
provider => provider =>
{ {
var excludeFilter = Assert.IsType<ValidationExcludeFilter>(provider); var excludeFilter = Assert.IsType<SuppressChildValidationMetadataProvider>(provider);
Assert.Equal(typeof(CancellationToken), excludeFilter.Type); Assert.Equal(typeof(CancellationToken), excludeFilter.Type);
}, },
provider => provider =>
{ {
var excludeFilter = Assert.IsType<ValidationExcludeFilter>(provider); var excludeFilter = Assert.IsType<SuppressChildValidationMetadataProvider>(provider);
Assert.Equal(typeof(IFormFile), excludeFilter.Type); Assert.Equal(typeof(IFormFile), excludeFilter.Type);
}, },
provider => provider =>
{ {
var excludeFilter = Assert.IsType<ValidationExcludeFilter>(provider); var excludeFilter = Assert.IsType<SuppressChildValidationMetadataProvider>(provider);
Assert.Equal(typeof(IFormCollection), excludeFilter.Type); Assert.Equal(typeof(IFormCollection), excludeFilter.Type);
}, },
provider => Assert.IsType<DataAnnotationsMetadataProvider>(provider), provider => Assert.IsType<DataAnnotationsMetadataProvider>(provider),
provider => provider =>
{ {
var excludeFilter = Assert.IsType<ValidationExcludeFilter>(provider); var excludeFilter = Assert.IsType<SuppressChildValidationMetadataProvider>(provider);
Assert.Equal(typeof(JToken), excludeFilter.Type); Assert.Equal(typeof(JToken), excludeFilter.Type);
}, },
provider => Assert.IsType<DataMemberRequiredBindingMetadataProvider>(provider), provider => Assert.IsType<DataMemberRequiredBindingMetadataProvider>(provider),
provider => provider =>
{ {
var excludeFilter = Assert.IsType<ValidationExcludeFilter>(provider); var excludeFilter = Assert.IsType<SuppressChildValidationMetadataProvider>(provider);
Assert.Equal(typeof(XObject).FullName, excludeFilter.FullTypeName); Assert.Equal(typeof(XObject).FullName, excludeFilter.FullTypeName);
}, },
provider => provider =>
{ {
var excludeFilter = Assert.IsType<ValidationExcludeFilter>(provider); var excludeFilter = Assert.IsType<SuppressChildValidationMetadataProvider>(provider);
Assert.Equal(typeof(XmlNode).FullName, excludeFilter.FullTypeName); Assert.Equal(typeof(XmlNode).FullName, excludeFilter.FullTypeName);
}); });
} }

View File

@ -4,7 +4,7 @@
using System.IO; using System.IO;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
namespace FormatterWebSite namespace FormatterWebSite
@ -15,8 +15,8 @@ namespace FormatterWebSite
{ {
services.AddMvc(options => services.AddMvc(options =>
{ {
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter(typeof(Developer))); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(Developer)));
options.ModelMetadataDetailsProviders.Add(new ValidationExcludeFilter(typeof(Supplier))); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider(typeof(Supplier)));
options.InputFormatters.Add(new StringInputFormatter()); options.InputFormatters.Add(new StringInputFormatter());
}) })