コード例 #1
0
        /// <summary>
        /// Creates a new instance of <see cref="MvcOptions"/>.
        /// </summary>
        public MvcOptions()
        {
            CacheProfiles                 = new Dictionary <string, CacheProfile>(StringComparer.OrdinalIgnoreCase);
            Conventions                   = new List <IApplicationModelConvention>();
            Filters                       = new FilterCollection();
            FormatterMappings             = new FormatterMappings();
            InputFormatters               = new FormatterCollection <IInputFormatter>();
            OutputFormatters              = new FormatterCollection <IOutputFormatter>();
            ModelBinderProviders          = new List <IModelBinderProvider>();
            ModelBindingMessageProvider   = new DefaultModelBindingMessageProvider();
            ModelMetadataDetailsProviders = new List <IMetadataDetailsProvider>();
            ModelValidatorProviders       = new List <IModelValidatorProvider>();
            ValueProviderFactories        = new List <IValueProviderFactory>();

            _allowCombiningAuthorizeFilters = new CompatibilitySwitch <bool>(nameof(AllowCombiningAuthorizeFilters));
            _allowBindingHeaderValuesToNonStringModelTypes = new CompatibilitySwitch <bool>(nameof(AllowBindingHeaderValuesToNonStringModelTypes));
            _allowValidatingTopLevelNodes            = new CompatibilitySwitch <bool>(nameof(AllowValidatingTopLevelNodes));
            _inputFormatterExceptionPolicy           = new CompatibilitySwitch <InputFormatterExceptionPolicy>(nameof(InputFormatterExceptionPolicy), InputFormatterExceptionPolicy.AllExceptions);
            _suppressBindingUndefinedValueToEnumType = new CompatibilitySwitch <bool>(nameof(SuppressBindingUndefinedValueToEnumType));
            _enableEndpointRouting = new CompatibilitySwitch <bool>(nameof(EnableEndpointRouting));

            _switches = new ICompatibilitySwitch[]
            {
                _allowCombiningAuthorizeFilters,
                _allowBindingHeaderValuesToNonStringModelTypes,
                _allowValidatingTopLevelNodes,
                _inputFormatterExceptionPolicy,
                _suppressBindingUndefinedValueToEnumType,
                _enableEndpointRouting,
            };
        }
コード例 #2
0
        /// <summary>
        /// Creates a new instance of <see cref="MvcOptions"/>.
        /// </summary>
        public MvcOptions()
        {
            CacheProfiles                 = new Dictionary <string, CacheProfile>(StringComparer.OrdinalIgnoreCase);
            Conventions                   = new List <IApplicationModelConvention>();
            Filters                       = new FilterCollection();
            FormatterMappings             = new FormatterMappings();
            InputFormatters               = new FormatterCollection <IInputFormatter>();
            OutputFormatters              = new FormatterCollection <IOutputFormatter>();
            ModelBinderProviders          = new List <IModelBinderProvider>();
            ModelBindingMessageProvider   = new DefaultModelBindingMessageProvider();
            ModelMetadataDetailsProviders = new List <IMetadataDetailsProvider>();
            ModelValidatorProviders       = new List <IModelValidatorProvider>();
            ValueProviderFactories        = new List <IValueProviderFactory>();

            _inputFormatterExceptionPolicy           = new CompatibilitySwitch <InputFormatterExceptionPolicy>(nameof(InputFormatterExceptionPolicy), InputFormatterExceptionPolicy.AllExceptions);
            _suppressBindingUndefinedValueToEnumType = new CompatibilitySwitch <bool>(nameof(SuppressBindingUndefinedValueToEnumType));
            _allowShortCircuitingValidationWhenNoValidatorsArePresent = new CompatibilitySwitch <bool>(nameof(AllowShortCircuitingValidationWhenNoValidatorsArePresent));

            _switches = new ICompatibilitySwitch[]
            {
                _inputFormatterExceptionPolicy,
                _suppressBindingUndefinedValueToEnumType,
                _allowShortCircuitingValidationWhenNoValidatorsArePresent,
            };
        }
コード例 #3
0
    public void FormatterMappings_GetMediaTypeMappingForFormat_ThrowsForInvalidFormats(string format)
    {
        // Arrange
        var options = new FormatterMappings();

        // Act & Assert
        Assert.Throws <ArgumentException>("format", () => options.GetMediaTypeMappingForFormat(format));
    }
コード例 #4
0
    public void FormatterMappings_SetFormatMapping_FormatEmpty()
    {
        // Arrange
        var options = new FormatterMappings();
        var format  = "";

        // Act and Assert
        ExceptionAssert.ThrowsArgumentNullOrEmpty(
            () => options.SetMediaTypeMappingForFormat(
                format,
                MediaTypeHeaderValue.Parse("application/xml")),
            "format");
    }
コード例 #5
0
    public void FormatterMappings_SetFormatMapping_DiffSetGetFormat(string setFormat, string contentType, string getFormat)
    {
        // Arrange
        var options = new FormatterMappings();

        options.SetMediaTypeMappingForFormat(setFormat, MediaTypeHeaderValue.Parse(contentType));

        // Act
        var returnMediaType = options.GetMediaTypeMappingForFormat(getFormat);

        // Assert
        MediaTypeAssert.Equal(contentType, returnMediaType);
    }
コード例 #6
0
 /// <summary>
 /// Creates a new instance of <see cref="MvcOptions"/>.
 /// </summary>
 public MvcOptions()
 {
     CacheProfiles                 = new Dictionary <string, CacheProfile>(StringComparer.OrdinalIgnoreCase);
     Conventions                   = new List <IApplicationModelConvention>();
     Filters                       = new FilterCollection();
     FormatterMappings             = new FormatterMappings();
     InputFormatters               = new FormatterCollection <IInputFormatter>();
     OutputFormatters              = new FormatterCollection <IOutputFormatter>();
     ModelBinderProviders          = new List <IModelBinderProvider>();
     ModelBindingMessageProvider   = new DefaultModelBindingMessageProvider();
     ModelMetadataDetailsProviders = new List <IMetadataDetailsProvider>();
     ModelValidatorProviders       = new List <IModelValidatorProvider>();
     ValueProviderFactories        = new List <IValueProviderFactory>();
 }
コード例 #7
0
ファイル: MvcOptions.cs プロジェクト: phinq19/git_example
 public MvcOptions()
 {
     CacheProfiles = new Dictionary<string, CacheProfile>(StringComparer.OrdinalIgnoreCase);
     Conventions = new List<IApplicationModelConvention>();
     Filters = new FilterCollection();
     FormatterMappings = new FormatterMappings();
     InputFormatters = new FormatterCollection<IInputFormatter>();
     OutputFormatters = new FormatterCollection<IOutputFormatter>();
     ModelBinders = new List<IModelBinder>();
     ModelBindingMessageProvider = new ModelBindingMessageProvider();
     ModelMetadataDetailsProviders = new List<IMetadataDetailsProvider>();
     ModelValidatorProviders = new List<IModelValidatorProvider>();
     ValueProviderFactories = new List<IValueProviderFactory>();
 }
コード例 #8
0
    public void FormatterMappings_WildcardFormat(string format)
    {
        // Arrange
        var options  = new FormatterMappings();
        var expected = $@"The media type ""{format}"" is not valid. MediaTypes containing wildcards (*) " +
                       "are not allowed in formatter mappings.";

        // Act and assert
        ExceptionAssert.ThrowsArgument(
            () => options.SetMediaTypeMappingForFormat(
                "star",
                MediaTypeHeaderValue.Parse(format)),
            "contentType",
            expected);
    }
コード例 #9
0
    public void FormatterMappings_Invalid_Period()
    {
        // Arrange
        var options  = new FormatterMappings();
        var format   = ".";
        var expected = $"The format provided is invalid '{format}'. A format must be a non-empty file-" +
                       "extension, optionally prefixed with a '.' character.";

        // Act and assert
        ExceptionAssert.ThrowsArgument(
            () => options.SetMediaTypeMappingForFormat(
                format,
                MediaTypeHeaderValue.Parse("application/xml")),
            "format",
            expected);
    }
コード例 #10
0
ファイル: Startup.cs プロジェクト: QuantumArt/QA.DPC
 private static void RegisterMediaTypes(FormatterMappings formatterMappings)
 {
     formatterMappings.SetMediaTypeMappingForFormat(WebApiConstants.XmlMappingValue,
                                                    MediaTypeHeaderValue.Parse(WebApiConstants.XmlMediaType));
     formatterMappings.SetMediaTypeMappingForFormat(WebApiConstants.JsonMappingValue,
                                                    MediaTypeHeaderValue.Parse(WebApiConstants.JsonMediaType));
     formatterMappings.SetMediaTypeMappingForFormat(WebApiConstants.PdfMappingValue,
                                                    MediaTypeHeaderValue.Parse(WebApiConstants.PdfMediaType));
     formatterMappings.SetMediaTypeMappingForFormat(WebApiConstants.XamlMappingValue,
                                                    MediaTypeHeaderValue.Parse(WebApiConstants.XamlMediaType));
     formatterMappings.SetMediaTypeMappingForFormat(WebApiConstants.JsonDefinitionMappingValue,
                                                    MediaTypeHeaderValue.Parse(WebApiConstants.JsonDefinitionMediaType));
     formatterMappings.SetMediaTypeMappingForFormat(WebApiConstants.JsonDefinition2MappingValue,
                                                    MediaTypeHeaderValue.Parse(WebApiConstants.JsonDefinition2MediaType));
     formatterMappings.SetMediaTypeMappingForFormat(WebApiConstants.BinaryMappingValue,
                                                    MediaTypeHeaderValue.Parse(WebApiConstants.BinaryMediaType));
 }
コード例 #11
0
    public void FormatterMappings_ClearFormatMapping(string format, bool expected)
    {
        // Arrange
        var options   = new FormatterMappings();
        var mediaType = MediaTypeHeaderValue.Parse("application/xml");

        options.SetMediaTypeMappingForFormat("xml", mediaType);
        mediaType = MediaTypeHeaderValue.Parse("application/json");
        options.SetMediaTypeMappingForFormat("json", mediaType);
        mediaType = MediaTypeHeaderValue.Parse("application/foo");
        options.SetMediaTypeMappingForFormat("foo", mediaType);
        mediaType = MediaTypeHeaderValue.Parse("application/bar");
        options.SetMediaTypeMappingForFormat("bar", mediaType);

        // Act
        var cleared = options.ClearMediaTypeMappingForFormat(format);

        // Assert
        Assert.Equal(expected, cleared);
        Assert.Null(options.GetMediaTypeMappingForFormat(format));
    }
コード例 #12
0
ファイル: Startup.cs プロジェクト: MikhailChesnokov/books
 public void ConfigureDevelopmentServices(IServiceCollection services)
 {
     services.AddSingleton <UptimeService>();
     services
     .AddMvc()
     .AddMvcOptions(options =>
     {
         var c = options.Conventions;
         FilterCollection f  = options.Filters;
         FormatterMappings m = options.FormatterMappings;
         var i  = options.InputFormatters;
         var v  = options.ModelValidatorProviders;
         var o  = options.OutputFormatters;
         bool r = options.RespectBrowserAcceptHeader;
     })
     //.AddFormatterMappings()
     //.AddJsonOptions()
     //.AddRazorOptions()
     //.AddViewOptions()
     ;
 }