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.