Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
| Valore | |
|---|---|
| ID della regola | ASP0006 |
| Categoria | Uso |
| La modifica è dirompente o non dirompente | Non separabile |
Causa
Chiamata su un metodo in RenderTreeBuilder contenente un numero di sequenza che non è un valore letterale come parametro.
Descrizione della regola
BlazorL'algoritmo di diffing dell'interfaccia utente si basa sui numeri di sequenza per determinare quali elementi sono stati modificati. Calcolare il numero di sequenza in modo dinamico o utilizzare un contatore può portare a prestazioni scarse nel confronto delle differenze. Usare invece un numero di sequenza letterale mappato alla riga del codice sorgente per l'elemento. Ad esempio, il codice seguente genera un errore:
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
var seqNum = 1;
builder.OpenElement(seqNum, "div");
builder.CloseElement();
Come correggere le violazioni
Per correggere una violazione di questa regola, assicurarsi che le chiamate ai metodi nella RenderTreeBuilder classe che accettano un numero di sequenza come parametro usino un numero di sequenza letterale.
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
builder.OpenElement(0, "div");
builder.CloseElement();
Quando eliminare gli avvisi
Non sopprimere un avviso da questa regola. L'uso di un numero di sequenza non letterale può comportare una riduzione delle prestazioni.