128 lines
5.2 KiB
C#
128 lines
5.2 KiB
C#
// 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;
|
|
using Microsoft.AspNet.Mvc.ApplicationModels;
|
|
using Microsoft.AspNet.Mvc.ModelBinding;
|
|
using Microsoft.AspNet.Mvc.ModelBinding.Metadata;
|
|
using Microsoft.AspNet.Mvc.ModelBinding.Validation;
|
|
|
|
namespace Microsoft.AspNet.Mvc
|
|
{
|
|
/// <summary>
|
|
/// Provides programmatic configuration for the MVC framework.
|
|
/// </summary>
|
|
public class MvcOptions
|
|
{
|
|
private int _maxModelStateErrors = ModelStateDictionary.DefaultMaxAllowedErrors;
|
|
|
|
public MvcOptions()
|
|
{
|
|
CacheProfiles = new Dictionary<string, CacheProfile>(StringComparer.OrdinalIgnoreCase);
|
|
Conventions = new List<IApplicationModelConvention>();
|
|
Filters = new List<IFilterMetadata>();
|
|
FormatterMappings = new FormatterMappings();
|
|
InputFormatters = new List<IInputFormatter>();
|
|
OutputFormatters = new List<IOutputFormatter>();
|
|
ModelBinders = new List<IModelBinder>();
|
|
ModelMetadataDetailsProviders = new List<IMetadataDetailsProvider>();
|
|
ModelValidatorProviders = new List<IModelValidatorProvider>();
|
|
ValidationExcludeFilters = new List<IExcludeTypeValidationFilter>();
|
|
ValueProviderFactories = new List<IValueProviderFactory>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets a Dictionary of CacheProfile Names, <see cref="CacheProfile"/> which are pre-defined settings for
|
|
/// <see cref="ResponseCacheFilter"/>.
|
|
/// </summary>
|
|
public IDictionary<string, CacheProfile> CacheProfiles { get; }
|
|
|
|
/// <summary>
|
|
/// Gets a list of <see cref="IApplicationModelConvention"/> instances that will be applied to
|
|
/// the <see cref="ApplicationModel"/> when discovering actions.
|
|
/// </summary>
|
|
public IList<IApplicationModelConvention> Conventions { get; }
|
|
|
|
/// <summary>
|
|
/// Gets a list of <see cref="IFilterMetadata"/> which are used to construct filters that
|
|
/// apply to all actions.
|
|
/// </summary>
|
|
public ICollection<IFilterMetadata> Filters { get; }
|
|
|
|
/// <summary>
|
|
/// Used to specify mapping between the URL Format and corresponding
|
|
/// <see cref="Net.Http.Headers.MediaTypeHeaderValue"/>.
|
|
/// </summary>
|
|
public FormatterMappings FormatterMappings { get; }
|
|
|
|
/// <summary>
|
|
/// Gets a list of <see cref="IInputFormatter"/>s that are used by this application.
|
|
/// </summary>
|
|
public IList<IInputFormatter> InputFormatters { get; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the maximum number of validation errors that are allowed by this application before further
|
|
/// errors are ignored.
|
|
/// </summary>
|
|
public int MaxModelValidationErrors
|
|
{
|
|
get { return _maxModelStateErrors; }
|
|
set
|
|
{
|
|
if (value < 0)
|
|
{
|
|
throw new ArgumentOutOfRangeException(nameof(value));
|
|
}
|
|
|
|
_maxModelStateErrors = value;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets a list of <see cref="IModelBinder"/>s used by this application.
|
|
/// </summary>
|
|
public IList<IModelBinder> ModelBinders { get; }
|
|
|
|
/// <summary>
|
|
/// Gets a list of <see cref="IMetadataDetailsProvider"/> instances that will be used to
|
|
/// create <see cref="ModelMetadata"/> instances.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// A provider should implement one or more of the following interfaces, depending on what
|
|
/// kind of details are provided:
|
|
/// <ul>
|
|
/// <li><see cref="IBindingMetadataProvider"/></li>
|
|
/// <li><see cref="IDisplayMetadataProvider"/></li>
|
|
/// <li><see cref="IValidationMetadataProvider"/></li>
|
|
/// </ul>
|
|
/// </remarks>
|
|
public IList<IMetadataDetailsProvider> ModelMetadataDetailsProviders { get; }
|
|
|
|
/// <summary>
|
|
/// Gets a list of <see cref="IModelValidatorProvider"/>s used by this application.
|
|
/// </summary>
|
|
public IList<IModelValidatorProvider> ModelValidatorProviders { get; }
|
|
|
|
/// <summary>
|
|
/// Gets a list of <see cref="IOutputFormatter"/>s that are used by this application.
|
|
/// </summary>
|
|
public IList<IOutputFormatter> OutputFormatters { get; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the flag which causes content negotiation to ignore Accept header
|
|
/// when it contains the media type */*. <see langword="false"/> by default.
|
|
/// </summary>
|
|
public bool RespectBrowserAcceptHeader { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets a list of <see cref="IExcludeTypeValidationFilter"/>s that are used by this application.
|
|
/// </summary>
|
|
public IList<IExcludeTypeValidationFilter> ValidationExcludeFilters { get; }
|
|
|
|
/// <summary>
|
|
/// Gets a list of <see cref="IValueProviderFactory"/> used by this application.
|
|
/// </summary>
|
|
public IList<IValueProviderFactory> ValueProviderFactories { get; }
|
|
}
|
|
} |