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.