As part of the 3.0 release, the following types and methods have been removed from Antiforgery, CORS, Diagnostics, MVC and Routing. Since these are binary breaking changes, applications or libraries that reference these APIs must remove these references and recompile to be compatible with ASP.NET Core 3.0:
Microsoft.AspNetCore.DiagnosticsViewPage.Views.AttributeValueMicrosoft.AspNetCore.DiagnosticsViewPage.Views.BaseViewMicrosoft.AspNetCore.DiagnosticsViewPage.Views.HelperResultMicrosoft.AspNetCore.Diagnostics.Views.WelcomePageMicrosoft.AspNetCore.Diagnostics.Views.AttributeValueMicrosoft.AspNetCore.Diagnostics.Views.BaseViewMicrosoft.AspNetCore.Routing.IRouteValuesAddressMetadataMicrosoft.AspNetCore.Routing.RouteValuesAddressMetadataMicrosoft.AspNetCore.Mvc.Formatters.Xml.ProblemDetails21WrapperMicrosoft.AspNetCore.Mvc.Formatters.Xml.ValidationProblemDetails21WrapperMicrosoft.AspNetCore.Mvc.Razor.Compilation.ViewsFeatureProviderMicrosoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageArgumentBinderMicrosoft.AspNetCore.Mvc.RazorPages.Infrastructure.DefaultPageArgumentBinderMicrosoft.AspNetCore.Antiforgery.AntiforgeryOptions.CookieName { get; set; }Microsoft.AspNetCore.Antiforgery.AntiforgeryOptions.CookiePath { get; set; }Microsoft.AspNetCore.Antiforgery.AntiforgeryOptions.CookieDomain { get; set; }Microsoft.AspNetCore.Antiforgery.AntiforgeryOptions.RequireSsl { get; set; }Microsoft.AspNetCore.Cors.CorsService.ctor(IOptions<CorsService> options)Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder.ctor(ILoggerFactory, UrlEncoder, ObjectPool<UriBuildingContext>, IInlineConstraintResolver )Microsoft.AspNetCore.Mvc.Formatters.OutputFormatterCanWriteContext.OutputFormatterCanWriteContext()Microsoft.AspNetCore.Mvc.ApiExplorer.DefaultApiDescriptionProvider.ctor(IOptions<MvcOptions> optionsAccessor, IInlineConstraintResolver constraintResolver, IModelMetadataProvider modelMetadataProvider);Microsoft.AspNetCore.Mvc.ApiExplorer.DefaultApiDescriptionProvider.ctor(IOptions<MvcOptions> optionsAccessor, IInlineConstraintResolver constraintResolver, IModelMetadataProvider modelMetadataProvider, IActionResultTypeMapper mapper)Microsoft.AspNetCore.Mvc.Formatters.FormatFilter.ctor(IOptions<MvcOptions> options)Microsoft.AspNetCore.Mvc.LocalRedirectResult.ExecuteResult(ActionContext context)Microsoft.AspNetCore.Mvc.RedirectResult.ExecuteResult(ActionContext context)Microsoft.AspNetCore.Mvc.RedirectToActionResult.ExecuteResult(ActionContext context)Microsoft.AspNetCore.Mvc.RedirectToPageResult.ExecuteResult(ActionContext context)Microsoft.AspNetCore.Mvc.RedirectToRouteResult.ExecuteResult(ActionContext context)Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinder.ctor(IModelBinder elementBinder)Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinder.ctor()Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinder.ctor()Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexTypeModelBinder.ctor(IDictionary<ModelMetadata, IModelBinder> propertyBinders)Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinder.ctor(IModelBinder keyBinder, IModelBinder valueBinder)Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DoubleModelBinder.ctor(NumberStyles supportedStyles)Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatModelBinder.ctor(NumberStyles supportedStyles)Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinder.ctor()Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinder.ctor()Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinder.ctor()Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinder.ctor(IModelBinder keyBinder, IModelBinder valueBinder)Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinder.ctor(Type type)Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes.ctor(IEnumerable<object> typeAttributes)Microsoft.AspNetCore.Mvc.ModelBinding.ModelAttributes.ctor(IEnumerable<object> propertyAttributes, IEnumerable<object> typeAttributes)Microsoft.AspNetCore.Mvc.ModelBinding.ModelBinderFactory.ctor(IModelMetadataProvider metadataProvider, IOptions<MvcOptions> options)Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.ctor(IModelMetadataProvider modelMetadataProvider, IModelBinderFactory modelBinderFactory, IObjectModelValidator validator)Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.BindModelAsync(ActionContext actionContext, IValueProvider valueProvider, ParameterDescriptor parameter)Microsoft.AspNetCore.Mvc.ModelBinding.ParameterBinder.BindModelAsync(ActionContext actionContext, IValueProvider valueProvider, ParameterDescriptor parameter, object value)Microsoft.AspNetCore.Mvc.Routing.KnownRouteValueConstraint.ctor()Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.ctor()Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.ctor(bool suppressInputFormatterBuffering)Microsoft.AspNetCore.Mvc.Formatters.XmlDataContractSerializerInputFormatter.ctor(MvcOptions options)Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.ctor()Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.ctor(bool suppressInputFormatterBuffering)Microsoft.AspNetCore.Mvc.Formatters.XmlSerializerInputFormatter.ctor(MvcOptions options)Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper.ctor(IHostingEnvironment hostingEnvironment, IMemoryCache cache, HtmlEncoder htmlEncoder, IUrlHelperFactory urlHelperFactory)Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper.ctor(IHostingEnvironment hostingEnvironment, IMemoryCache cache, HtmlEncoder htmlEncoder, JavaScriptEncoder javaScriptEncoder, IUrlHelperFactory urlHelperFactory)Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper.ctor(IHostingEnvironment hostingEnvironment, IMemoryCache cache, HtmlEncoder htmlEncoder, JavaScriptEncoder javaScriptEncoder, IUrlHelperFactory urlHelperFactory)Microsoft.AspNetCore.Mvc.CookieTempDataProviderOptions.Path { get; set; }Microsoft.AspNetCore.Mvc.CookieTempDataProviderOptions.Domain { get; set; }Microsoft.AspNetCore.Mvc.CookieTempDataProviderOptions.CookieName { get; set; }Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.RazorPageAdapter.ctor(RazorPageBase page)Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.SuppressUseValidationProblemDetailsForInvalidModelStateResponses { get; set; }Microsoft.AspNetCore.Mvc.ApiBehaviorOptions.AllowInferringBindingSourceForCollectionTypesAsFromQuery { get; set; }Microsoft.AspNetCore.Mvc.ApplicationModels.InferParameterBindingInfoConvention.AllowInferringBindingSourceForCollectionTypesAsFromQuery { get; set; }Microsoft.AspNetCore.Mvc.MvcOptions.AllowCombiningAuthorizeFilters { get; set; }Microsoft.AspNetCore.Mvc.MvcOptions.AllowBindingHeaderValuesToNonStringModelTypes { get; set; }Microsoft.AspNetCore.Mvc.MvcOptions.AllowValidatingTopLevelNodes { get; set; }Microsoft.AspNetCore.Mvc.MvcOptions.InputFormatterExceptionPolicy { get; set; }Microsoft.AspNetCore.Mvc.MvcOptions.SuppressBindingUndefinedValueToEnumType { get; set; }Microsoft.AspNetCore.Mvc.MvcOptions.AllowShortCircuitingValidationWhenNoValidatorsArePresent { get; set; }Microsoft.AspNetCore.Mvc.MvcDataAnnotationsLocalizationOptions.AllowDataAnnotationsLocalizationForEnumDisplayAttributes { get; set; }Microsoft.AspNetCore.Mvc.MvcXmlOptions.AllowRfc7807CompliantProblemDetailsFormat { get; set; }Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions.AllowAreas { get; set; }Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions.AllowMappingHeadRequestsToGetHandler { get; set; }Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions.AllowDefaultHandlingForOptionsRequests { get; set; }Microsoft.AspNetCore.Mvc.MvcViewOptions.SuppressTempDataAttributePrefix { get; set; }Microsoft.AspNetCore.Mvc.MvcViewOptions.AllowRenderingMaxLengthAttribute { get; set; }And...? Are they moved to another namespace or just totally gone?
@theCuriousOne From just scrolling through that list quickly, most of them were already deprecated before and already had a recommended replacement in 2.2.
It appears MvcOptions.InputFormatterExceptionPolicy was not deprecated but is gone now. What is the alternative?
@Sebazzz all of the serializers in MVC default to the 2.1 compatibility behavior which is InputFormatterExceptionPolicy.MalformedInputExceptions. There isn't a way to configure it. If you have a specific scenario where you need the other AllExceptions behavior, could you file a separate issue so we could triage it?
@theCuriousOne as @poke pointed out, these were removed either because they were previously marked as obsolete or were properties that were designed to tweak specific compatibility behavior. Compatiblity settings are generally designed to only be supported for the duration of a single major release, and such, these properties are no longer supported and hence removed.
Most helpful comment
@Sebazzz all of the serializers in MVC default to the 2.1 compatibility behavior which is
InputFormatterExceptionPolicy.MalformedInputExceptions. There isn't a way to configure it. If you have a specific scenario where you need the otherAllExceptionsbehavior, could you file a separate issue so we could triage it?@theCuriousOne as @poke pointed out, these were removed either because they were previously marked as obsolete or were properties that were designed to tweak specific compatibility behavior. Compatiblity settings are generally designed to only be supported for the duration of a single major release, and such, these properties are no longer supported and hence removed.