API obsoletas Blazor eliminadas

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.PreferExactMatches La 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ámetro IServiceProvider).
  • Clase RemoteBrowserFileStreamOptions.

Microsoft.AspNetCore.Components.Web

  • la clase WebEventCallbackFactoryEventArgsExtensions y todos sus métodos de extensión.
  • El descriptor de acceso de init de WebRenderer.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.
  • RemoteAuthenticationService sobrecarga del constructor que no recibe un objeto logger.
  • el constructor AccessTokenResult y la propiedad RedirectUrl.
  • AccessTokenNotAvailableException ahora usa InteractiveRequestUrl en lugar de la quitada RedirectUrl.

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.

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