Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
| Värde | |
|---|---|
| Regel-ID | ASP0006 | 
| Kategori | Användning | 
| Korrigeringen är antingen brytande eller icke-brytande | Oskiljbar | 
Orsak
Ett anrop på en metod i RenderTreeBuilder med ett sekvensnummer som inte är en literal som parameter.
Regelbeskrivning
BlazorAlgoritmen för gränssnittsdiffing förlitar sig på sekvensnummer för att avgöra vilka element som har ändrats. Att beräkna sekvensnumret dynamiskt eller med hjälp av en räknare kan leda till dåliga prestanda. Använd i stället ett literalsekvensnummer som mappar till källkodsraden för elementet. Följande kod genererar till exempel ett fel:
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
var seqNum = 1;
builder.OpenElement(seqNum, "div");
builder.CloseElement();
Så här åtgärdar du överträdelser
Om du vill åtgärda en överträdelse av den här regeln kontrollerar du att anrop till metoder i RenderTreeBuilder klassen som tar ett sekvensnummer som en parameter använder ett literalsekvensnummer.
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
builder.OpenElement(0, "div");
builder.CloseElement();
När du ska ignorera varningar
Utelämna inte en varning från den här regeln. Om du använder ett icke-literalt sekvensnummer kan prestanda försämras.
ASP.NET Core