APIs obsoletas Blazor removidas

Um conjunto de APIs nos assemblies Blazor Components marcados anteriormente como obsoletos foram removidos no ASP.NET Core 11. A maioria dessas APIs foi marcada como obsoleta já há várias versões e conta com alternativas funcionais recomendadas há anos.

Versão introduzida

.NET 11

Comportamento anterior

Anteriormente, as APIs afetadas eram compiladas com um aviso obsoleto. A maioria dos avisos apontou para uma API de substituição. Por exemplo, a chamada EditContext.AddDataAnnotationsValidation() produziu um aviso obsoleto recomendando EnableDataAnnotationsValidation.

Novo comportamento

No ASP.NET Core 11, as SEGUINTEs APIs são removidas e não são mais compiladas.

Microsoft.AspNetCore.Components

  • Propriedade Router.PreferExactMatches. A propriedade não teve efeito desde que o roteamento de correspondência exata se tornou o padrão em .NET 6.
  • ResourceAsset(string url) sobrecarga do construtor.

Microsoft.AspNetCore.Components.Forms

  • O método de extensão EditContextDataAnnotationsExtensions.AddDataAnnotationsValidation(EditContext).
  • EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(EditContext) sobrecarga (a sobrecarga sem um parâmetro IServiceProvider).
  • RemoteBrowserFileStreamOptions classe.

Microsoft.AspNetCore.Components.Web

  • WebEventCallbackFactoryEventArgsExtensions classe e todos os seus métodos de extensão.
  • O init acessor de WebRenderer.RendererId. A propriedade agora é definida apenas pelo construtor.

Microsoft.AspNetCore.Components.WebAssembly

  • Método JSInteropMethods.NotifyLocationChanged(string, bool).

Microsoft.AspNetCore.Components.WebAssembly.Authentication

  • SignOutSessionStateManager classe. A classe tem sido uma no-op desde .NET 7.
  • RemoteAuthenticationService a sobrecarga do construtor que não recebe um registrador.
  • o construtor AccessTokenResult e a propriedade RedirectUrl.
  • AccessTokenNotAvailableException agora usa InteractiveRequestUrl no lugar do removido RedirectUrl.

Tipo de mudança disruptiva

Essa alteração pode afetar a compatibilidade do código-fonte.

Motivo da alteração

Essas APIs foram marcadas como obsoletas em versões anteriores (a maioria entre .NET 5 e .NET 8). Cada um deles tinha um substituto documentado, e continuar distribuindo a superfície obsoleta aumentava o custo de manutenção e a superfície para Blazor, sem benefício. Para obter mais informações, consulte dotnet/aspnetcore#62755.

Atualize seu código para usar as APIs de substituição, conforme listado na tabela a seguir.

API removida Substituição
Router.PreferExactMatches Remova a atribuição. A correspondência exata tem sido o padrão 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 Usar o EventCallbackFactory diretamente.
WebRenderer.RendererId.init Acessador Passe RendererId por meio do construtor WebRenderer.
JSInteropMethods.NotifyLocationChanged(string, bool) JSInteropMethods.NotifyLocationChanged(string uri, string? state, bool isInterceptedLink) (adicionado em .NET 7). Este método deve ser usado apenas pelo framework.
SignOutSessionStateManager Excluir registros de uso. A classe tem sido uma no-op desde .NET 7.
RemoteAuthenticationService (construtor sem registrador) O construtor restante usa um ILogger<RemoteAuthenticationService<...>> parâmetro.
AccessTokenResult construtor e RedirectUrl propriedade Use o construtor restante e InteractiveRequestUrl.

APIs afetadas