Share via


ASP0006: No usar números de secuencia no literales

Valor
Identificador de la regla ASP0006
Categoría Uso
La corrección es problemática o no problemática Poco problemático

Causa

Una invocación en un método en RenderTreeBuilder que contiene un número de secuencia que no es literal como parámetro.

Descripción de la regla

El algoritmo de diferenciación de la interfaz de usuario de Blazor se basa en números de secuencia para determinar qué elementos han cambiado. Calcular el número de secuencia dinámicamente o usar un contador puede dar lugar a un rendimiento del algoritmo de diferenciación deficiente. En su lugar, use un número de secuencia literal que se asigne a la línea de código fuente del elemento. Por ejemplo, el siguiente código produce un error:

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

Cómo corregir infracciones

Para corregir una infracción de esta regla, asegúrese de que las llamadas a métodos de la clase RenderTreeBuilder que toman un número de secuencia como parámetro usan un número de secuencia literal.

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

Cuándo suprimir las advertencias

No suprima las advertencias de esta regla. El uso de un número de secuencia no literal puede provocar una degradación del rendimiento.