다음을 통해 공유


정규식 원본 생성을 위한 SYSLIB 진단

다음 표에서는 .NET 7 및 이후 버전의 regex 원본 생성 분석기 진단 ID를 보여줍니다. SYSLIB1045는 원본 생성을 사용하여 컴파일 시간에 정규식 엔진 구현을 생성할 수 있는 위치를 자동으로 알려줍니다. 나머지 진단은 원본 생성기의 사용과 관련된 오류를 경고합니다.

진단 ID Description
SYSLIB1040 GeneratedRegexAttribute 사용이 잘못되었습니다.
SYSLIB1041 여러 GeneratedRegexAttribute 특성이 동일한 메서드에 적용되었지만 그중 하나만 허용됩니다.
SYSLIB1042 지정된 정규식이 잘못되었습니다.
SYSLIB1043 GeneratedRegexAttribute 메서드는 부분적이고 매개 변수가 없으며 제네릭이 아닌 비추상 메서드여야 하며, Regex를 반환해야 합니다.
SYSLIB1044 regex 생성기는 내부 제한으로 인해 지정된 정규식에 대한 전체 원본 구현을 생성할 수 없습니다. 자세한 내용은 생성된 원본의 설명을 참조하세요.
SYSLIB1045 GeneratedRegexAttribute를 사용하여 컴파일 시간에 정규식 구현을 생성합니다.

정규식의 원본 생성에 관한 자세한 내용은 .NET 정규식 원본 생성기를 참조하세요.

경고 표시 안 함

가능한 경우 해결 방법 중 하나를 사용하는 것이 좋습니다. 그러나 코드를 변경할 수 없는 경우 #pragma 지시문 또는 <NoWarn> 프로젝트 설정을 통해 경고를 표시하지 않을 수 있습니다. SYSLIB1XXX 소스 생성기 진단이 오류로 표시되지 않으면 코드 또는 프로젝트 파일에서 경고를 표시하지 않을 수 있습니다.

코드에서 경고를 표시하지 않으려면 다음을 수행합니다.

// Disable the warning.
#pragma warning disable SYSLIB1006

// Code that generates compiler diagnostic.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB1006

프로젝트 파일에서 경고를 표시하지 않으려면 다음을 수행합니다.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   <TargetFramework>net6.0</TargetFramework>
   <!-- NoWarn below suppresses SYSLIB1002 project-wide -->
   <NoWarn>$(NoWarn);SYSLIB1002</NoWarn>
   <!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
   <NoWarn>$(NoWarn);SYSLIB1002</NoWarn>
   <NoWarn>$(NoWarn);SYSLIB1006</NoWarn>
   <!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
   <NoWarn>$(NoWarn);SYSLIB1002;SYSLIB1006;SYSLIB1007</NoWarn>
  </PropertyGroup>
</Project>

추가 정보