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.