用於規則運算式來源產生的 SYSLIB 診斷
下表顯示在 .NET 7 和更新版本中規則運算式來源產生分析器的診斷識別碼。 SYSLIB1045
會自動提醒您使用來源產生以在編譯時間產生規則運算式引擎實作的位置。 剩餘的診斷會提醒您與來源產生器使用方式相關的錯誤。
診斷識別碼 | 描述 |
---|---|
SYSLIB1040 |
無效的 GeneratedRegexAttribute 使用方式。 |
SYSLIB1041 |
已將多個 GeneratedRegexAttribute 屬性套用至同一個方法,但最終只允許套用一個屬性。 |
SYSLIB1042 |
指定的規則運算式無效。 |
SYSLIB1043 |
GeneratedRegexAttribute 方法必須是部份、無參數、非泛型和非抽象的,且可以傳回 Regex。 |
SYSLIB1044 |
由於內部限制,規則運算式無法為指定的規則運算式產生完整的來源實作。 如需詳細資訊,請參閱產生的來源中的說明。 |
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>