Dela via


SYSLIB1039: JsonSourceGenerator påträffade en JsonDerivedTypeAttribute anteckning med JsonSourceGenerationMode.Serialization aktiverad

JsonDerivedTypeAttribute anteckningar stöds för källgenerering, men inte för kontexter som kommenteras med JsonSourceGenerationMode.Serialization. Attributet fungerar alltså med metadatakällans generator, men inte i snabbsökmetoder.

Provisoriska lösningar

Ta bort attributet eller ta bort kommentaren JsonSourceGenerationMode.Serialization från serialiseringskontexten.

Ignorera varningar

Vi rekommenderar att du använder någon av lösningarna när det är möjligt. Men om du inte kan ändra koden kan du ignorera varningen via ett #pragma direktiv eller en <NoWarn> projektinställning. Om källgeneratordiagnostiken SYSLIB1XXX inte visas som ett fel kan du utelämna varningen i koden eller i projektfilen.

Så här utelämnar du varningarna i koden:

// Disable the warning.
#pragma warning disable SYSLIB1006

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

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

Så här utelämnar du varningarna i en projektfil:

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