Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se ha eliminado un conjunto de API en los ensamblados Components de Blazor que se habían marcado anteriormente como obsoletas en ASP.NET Core 11. La mayoría de estas API se marcaron como obsoletas hace varias versiones y tienen alternativas funcionales que se recomiendan desde hace años.
Versión introducida
.NET 11
Comportamiento anterior
Anteriormente, las API afectadas se compilaban con una advertencia de obsolescencia. La mayoría de las advertencias apuntaban a una API de reemplazo. Por ejemplo, llamar a EditContext.AddDataAnnotationsValidation() genera una advertencia obsoleta que recomienda EnableDataAnnotationsValidation.
Nuevo comportamiento
En ASP.NET Core 11, se quitan las SIGUIENTES API y ya no se compilan.
Microsoft.AspNetCore.Components
- Propiedad
Router.PreferExactMatchesLa propiedad no ha tenido ningún efecto desde que el enrutamiento de coincidencia exacta se convirtió en el valor predeterminado en .NET 6. -
ResourceAsset(string url)sobrecarga del constructor.
Microsoft.AspNetCore.Components.Forms
- El método de extensión
EditContextDataAnnotationsExtensions.AddDataAnnotationsValidation(EditContext). -
EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(EditContext)sobrecarga (la sobrecarga sin parámetroIServiceProvider). - Clase
RemoteBrowserFileStreamOptions.
Microsoft.AspNetCore.Components.Web
- la clase
WebEventCallbackFactoryEventArgsExtensionsy todos sus métodos de extensión. - El descriptor de acceso de
initdeWebRenderer.RendererId. La propiedad ahora solo puede establecerse mediante el constructor.
Microsoft.AspNetCore.Components.WebAssembly
- Método
JSInteropMethods.NotifyLocationChanged(string, bool).
Microsoft.AspNetCore.Components.WebAssembly.Authentication
- Clase
SignOutSessionStateManager. La clase no ha realizado ninguna operación desde .NET 7. -
RemoteAuthenticationServicesobrecarga del constructor que no recibe un objeto logger. - el constructor
AccessTokenResulty la propiedadRedirectUrl. -
AccessTokenNotAvailableExceptionahora usaInteractiveRequestUrlen lugar de la quitadaRedirectUrl.
Tipo de cambio disruptivo
Este cambio puede afectar a la compatibilidad de origen.
Motivo del cambio
Estas API se marcaron como obsoletas en versiones anteriores (la mayoría entre .NET 5 y .NET 8). Cada uno tenía un reemplazo documentado, y seguir incluyendo la superficie obsoleta aumentaba el coste de mantenimiento y la superficie expuesta para Blazor sin aportar ningún beneficio. Para obtener más información, vea dotnet/aspnetcore#62755.
Acción recomendada
Actualice el código para usar las API de reemplazo como se muestra en la tabla siguiente.
| Interfaz de programación de aplicaciones (API) eliminada | Replacement |
|---|---|
Router.PreferExactMatches |
Eliminar la asignación. La coincidencia exacta ha sido la predeterminada desde .NET 6. |
ResourceAsset(string url) |
ResourceAsset(string url, IReadOnlyList<ResourceAssetProperty>? properties) |
EditContextDataAnnotationsExtensions.AddDataAnnotationsValidation(EditContext) |
EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(EditContext, IServiceProvider) |
EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(EditContext) |
EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(EditContext, IServiceProvider) |
RemoteBrowserFileStreamOptions |
BrowserFileStreamOptions |
WebEventCallbackFactoryEventArgsExtensions |
Usa EventCallbackFactory directamente. |
WebRenderer.RendererId.init descriptor de acceso |
Pase RendererId mediante el constructor WebRenderer. |
JSInteropMethods.NotifyLocationChanged(string, bool) |
JSInteropMethods.NotifyLocationChanged(string uri, string? state, bool isInterceptedLink) (agregado en .NET 7). Este método es solo para uso de marco. |
SignOutSessionStateManager |
Elimina los usos. La clase no realiza ninguna operación desde .NET 7. |
RemoteAuthenticationService (constructor sin registro) |
El constructor restante toma un ILogger<RemoteAuthenticationService<...>> parámetro. |
AccessTokenResult constructor y RedirectUrl propiedad |
Use el constructor restante y InteractiveRequestUrl. |
Las APIs afectadas
- Microsoft.AspNetCore.Components.Routing.Router.PreferExactMatches
- Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.AddDataAnnotationsValidation
- Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation
Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptionsMicrosoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions-
Microsoft.AspNetCore.Components.RenderTree.WebRenderer.RendererId(descriptor de acceso init) Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(System.String, System.Boolean)Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager-
Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService<TRemoteAuthenticationState, TAccount, TProviderOptions>(sobrecarga del constructor sin registrador) -
Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult(constructor heredado y propiedadRedirectUrl) -
Microsoft.AspNetCore.Components.ResourceAsset(sobrecarga del constructor sinproperties)