Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
| Wert | |
|---|---|
| Regel-ID | ASP0006 |
| Kategorie | Usage |
| Korrektur ist blockierend oder nicht-blockierend | Non-breaking |
Ursache
Ein Aufruf einer Methode in RenderTreeBuilder, die eine Sequenznummer als Parameter hat, die kein Literal ist.
Regelbeschreibung
BlazorDer Benutzeroberflächen-Diffingalgorithmus basiert auf Sequenznummern, um zu bestimmen, welche Elemente sich geändert haben. Das dynamische Berechnen der Sequenznummer oder die Zählernutzung kann zu einer schlechten Differenzierungsleistung führen. Verwenden Sie stattdessen eine Literalsequenznummer, die der Quellcodezeile für das Element zugeordnet ist. Der folgende Code erzeugt beispielsweise einen Fehler:
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
var seqNum = 1;
builder.OpenElement(seqNum, "div");
builder.CloseElement();
Wie man Verstöße behebt
Um einen Verstoß gegen diese Regel zu beheben, stellen Sie sicher, dass Methodenaufrufe der Klasse RenderTreeBuilder, die eine Sequenznummer als Parameter annehmen, eine literale Sequenznummer verwenden.
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
builder.OpenElement(0, "div");
builder.CloseElement();
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung aus dieser Regel. Die Verwendung einer nicht literalen Sequenznummer kann zu Leistungsbeeinträchtigungen führen.
ASP.NET Core