다음을 통해 공유


ASP0006: 리터럴이 아닌 시퀀스 번호를 사용하지 마세요.

가치
규칙 아이디 ASP0006
범주 사용법
수정 사항이 문제를 해결하고 있는지 혹은 새로운 문제를 일으키지 않는지 여부 비손상

원인

매개 변수로 리터럴이 아닌 시퀀스 번호를 포함하는 메서드 RenderTreeBuilder 에 대한 호출입니다.

규칙 설명

Blazor'의 UI 차이 알고리즘은 시퀀스 번호를 사용하여 변경된 요소를 결정합니다. 시퀀스 번호를 동적으로 계산하거나 카운터를 사용하면 성능이 저하될 수 있습니다. 대신 요소의 소스 코드 줄에 매핑되는 리터럴 시퀀스 번호를 사용합니다. 예를 들어 다음 코드는 오류를 생성합니다.

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

위반을 해결하는 방법

이 규칙 위반 문제를 해결하려면 시퀀스 번호를 매개 변수로 사용하는 클래스의 RenderTreeBuilder 메서드 호출에서 리터럴 시퀀스 번호를 사용해야 합니다.

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

경고를 표시하지 않는 경우

이 규칙의 경고를 숨기지 마세요. 리터럴이 아닌 시퀀스 번호를 사용하면 성능이 저하될 수 있습니다.