次の方法で共有


正規表現ソース生成の SYSLIB 診断

次の表に、.NET 7 以降のバージョンの正規表現ソース生成アナライザーの診断 ID を示します。 コンパイル時にソース生成を利用して正規表現エンジンの実装可能な場所を自動的に通知します。 残りの診断では、ソース ジェネレーターの使用に関連するエラーが警告されます。

診断識別子 説明
SYSLIB1040 無効な使用です。
SYSLIB1041 複数の 属性が同じメソッドに適用されましたが、1 つしか許可されません。
SYSLIB1042 指定された正規表現は無効です。
SYSLIB1043 メソッドは、部分、パラメーターなし、非ジェネリック、非抽象でなければならず、 を返す必要があります。
SYSLIB1044 内部制限により、正規表現ジェネレーターは指定された正規表現の完全なソース実装を生成できませんでした。 詳細については、生成されたソースの説明を参照してください。
SYSLIB1045 を使用して、コンパイル時に正規表現の実装を生成します。

正規表現のソース生成の詳細については、「.NET正規表現ソース ジェネレーターを参照してください。

警告を表示しない

可能な場合は、いずれかの回避策を使用することをお勧めします。 ただし、コードを変更できない場合は、 ディレクティブまたは プロジェクト設定を使用して警告を抑制できます。 ソース ジェネレーターの診断がエラーとして表示されない場合は、コードまたはプロジェクト ファイルで警告を抑制できます。

コード内の警告を抑制するには (必要に応じて診断 ID を置き換えます)。

// Disable the warning.
#pragma warning disable SYSLIB1006

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

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

プロジェクト ファイル内の警告を抑制するには (必要に応じて診断 ID を置き換えます)。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   <TargetFramework>net10.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>

こちらも参照ください