Freigeben über


SYSLIB1034: JsonSourceGenerator hat eine [JsonStringEnumConverter]-Anmerkung gefunden

Der nicht generische JsonStringEnumConverter Code erfordert dynamischen Code und kann nicht mit der Quellgenerierung verwendet werden.

Problemumgehung

Verwenden Sie JsonStringEnumConverter<TEnum> stattdessen, was keine Laufzeitcodegenerierung erfordert.

Unterdrücken von Warnungen

Sie sollten nach Möglichkeit eine der folgenden Problemumgehungen verwenden. Wenn Sie den Code nicht ändern können, können Sie die Warnung über eine #pragma-Anweisung oder eine <NoWarn>-Projekteinstellung unterdrücken. Wenn die SYSLIB1XXX-Diagnose des Quell-Generators keine Fehler anzeigt, können Sie die Warnung im Code oder in der Projektdatei unterdrücken.

So unterdrücken Sie die Warnungen im Code:

// Disable the warning.
#pragma warning disable SYSLIB1006

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

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

So unterdrücken Sie die Warnungen in einer Projektdatei:

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