Teilen über


SYSLIB1039: JsonSourceGenerator hat eine JsonDerivedTypeAttribute Anmerkung gefunden, JsonSourceGenerationMode.Serialization aktiviert ist

JsonDerivedTypeAttribute Anmerkungen werden für die Quellgenerierung unterstützt, jedoch nicht für Kontexte, die mit JsonSourceGenerationMode.SerializationAnmerkungen versehen sind. Das heißt, das Attribut funktioniert mit dem Metadatenquellgenerator, aber nicht in Schnellpfadmethoden.

Problemumgehung

Entfernen Sie das Attribut, oder entfernen Sie die JsonSourceGenerationMode.Serialization Anmerkung aus dem Serialisierungskontext.

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>