Description
Making "pubinternal" types in MVC internal
In ASP.NET Core, pubinternal types are types that are declared as public but put in an .Internal namespace. While these types are public they have no support policy and are subject to breaking changes. Unfortunately accidental use of these types has been common, resulting in breaking changes to these projects and limiting our ability to maintain the framework.
In ASP.NET Core 3.0, we are updating all pubinternal types in MVC to either be public in a supported namespace, or internal as appropriate.
Version introduced
3.0
Old behavior
Some types in MVC were public
but in an .Internal
namespace. These types had no support policy and were subject to breaking changes.
New behavior
All such types are updated either to be public
in a supported namespace, or marked as internal
.
Reason for change
Accidental use of the pubternal types has been common, resulting in breaking changes to these projects and limiting our ability to maintain the framework.
Recommended action
If you are using types that have become truly public
and have been moved into a new, supported namespace, update your references to match the new namespaces.
If you are using types that have become marked as internal
, you will need to find an alternative. The previously-pubternal types were never supported for public use. If there are specific types in these namespaces that are critical to your applications, please file an issue in https://github.com/aspnet/aspnetcore and we will consider making the requested types public.
Category
- ASP.NET Core
Affected APIs
This change includes types in the following namespaces:
- Microsoft.AspNetCore.Mvc.Formatters.Xml.Internal
- Microsoft.AspNetCore.Mvc.Cors.Internal
- Microsoft.AspNetCore.Mvc.ViewFeatures.Internal
- Microsoft.AspNetCore.Mvc.Formatters.Json.Internal
- Microsoft.AspNetCore.Mvc.RazorPages.Internal
- Microsoft.AspNetCore.Mvc.DataAnnotations.Internal
- Microsoft.AspNetCore.Mvc.TagHelpers.Internal
- Microsoft.AspNetCore.Mvc.Internal
- Microsoft.AspNetCore.Mvc.Razor.Internal
- Microsoft.AspNetCore.Mvc.Formatters.Internal
- Microsoft.AspNetCore.Mvc.Core.Internal
- Microsoft.AspNetCore.Mvc.ModelBinding.Internal
Issue metadata
- Issue type: breaking-change