Bagikan melalui


Diagnostik SYSLIB untuk pembuatan sumber regex

Tabel berikut menunjukkan ID diagnostik untuk penganalisis pembuatan sumber regex di .NET 7 dan versi yang lebih baru. SYSLIB1045 secara otomatis memperingatkan Anda ke tempat-tempat yang dapat Anda gunakan pembuatan sumber untuk menghasilkan implementasi mesin ekspresi reguler pada waktu kompilasi. Diagnostik yang tersisa memberi tahu Anda tentang kesalahan yang terkait dengan penggunaan generator sumber.

ID diagnostik Deskripsi
SYSLIB1040 Penggunaan tidak valid GeneratedRegexAttribute .
SYSLIB1041 Beberapa GeneratedRegexAttribute atribut diterapkan ke metode yang sama, tetapi hanya satu yang diizinkan.
SYSLIB1042 Ekspresi reguler yang ditentukan tidak valid.
SYSLIB1043 Metode GeneratedRegexAttribute harus parsial, tanpa parameter, non-generik, dan non-abstrak, dan mengembalikan Regex.
SYSLIB1044 Generator regex tidak dapat menghasilkan implementasi sumber lengkap untuk ekspresi reguler yang ditentukan karena keterbatasan internal. Lihat penjelasan di sumber yang dihasilkan untuk detail selengkapnya.
SYSLIB1045 Gunakan GeneratedRegexAttribute untuk menghasilkan implementasi ekspresi reguler pada waktu kompilasi.

Untuk informasi selengkapnya tentang pembuatan sumber untuk ekspresi reguler, lihat generator sumber ekspresi reguler .NET.

Menutupi peringatan

Sebaiknya Anda menggunakan salah satu solusi jika memungkinkan. Namun, jika Anda tidak dapat mengubah kode, Anda dapat menyembunyikan peringatan melalui petunjuk #pragma atau pengaturan proyek <NoWarn>. Jika diagnostik generator sumber SYSLIB1XXX tidak muncul sebagai kesalahan, Anda dapat menyembunyikan peringatan dalam kode atau dalam file proyek Anda.

Untuk menutupi peringatan dalam kode:

// Disable the warning.
#pragma warning disable SYSLIB1006

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

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

Untuk menutupi peringatan dalam file proyek:

<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>

Lihat juga