Partage via


ASP0006 : N’utilisez pas de numéros de séquence non littéraux

Value
Identificateur de la règle ASP0006
Catégorie Utilisation
Le correctif est cassant ou non cassant Sans rupture

Cause

Une invocation sur une méthode RenderTreeBuilder contenant en paramètre un numéro de séquence qui n'est pas un littéral.

Description de la règle

L’algorithme de différence de l’interface utilisateur de Blazor s’appuie sur les numéros de séquence pour déterminer quels éléments ont changé. Le calcul dynamique du numéro de séquence ou l'utilisation d'un compteur peut entraîner de mauvaises performances en matière de diffraction. Au lieu de cela, utilisez un numéro de séquence littéral qui correspond à la ligne de code source de l'élément. Par exemple, le code suivant génère une erreur :

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

Comment corriger les violations

assurez-vous que les appels aux méthodes de la classe RenderTreeBuilder qui prennent un numéro de séquence comme paramètre utilisent un numéro de séquence littéral.

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

Quand supprimer les avertissements

Ne supprimez pas un avertissement de cette règle. L'utilisation d'un numéro de séquence non littéral peut entraîner une dégradation des performances.