Share via


ASP0006: não usar números de sequência não literais

Valor
ID da regra ASP0006
Categoria Uso
Correção interruptiva ou sem interrupção Sem interrupção

Causa

Uma invocação em um método no RenderTreeBuilder que contém um número de sequência que não é um literal como um parâmetro.

Descrição da regra

O algoritmo de comparação de interface do usuário do Blazor depende de números de sequência para determinar quais elementos foram alterados. Calcular o número de sequência dinamicamente ou usar um contador pode resultar em baixo desempenho difing. Em vez disso, use um número de sequência literal que mapeie para a linha do código-fonte do elemento. Por exemplo, o código a seguir gera um erro:

using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
var seqNum = 1;
builder.OpenElement(seqNum, "div");
builder.CloseElement();

Como corrigir violações

Para corrigir uma violação dessa regra, verifique se as chamadas para métodos na classe RenderTreeBuilder que usam um número de sequência como parâmetro usam um número de sequência literal.

using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
builder.OpenElement(0, "div");
builder.CloseElement();

Quando suprimir avisos

Não suprima um aviso nessa regra. O uso de um número de sequência não literal pode resultar na degradação do desempenho.