Sdílet prostřednictvím


SYSLIB1036: System.Text.Json Ve zdrojovém generátoru došlo k neplatné [JsonExtensionData] poznámce

Zdrojový System.Text.Json generátor zjistil vlastnost nebo pole s poznámkami [JsonExtensionData] , ale jehož datový typ neimplementuje IDictionary<string, JsonElement>, , IDictionary<string, object>, IDictionary<string, JsonNode>nebo JsonNode.

Alternativní řešení

Ujistěte se, že datový typ pro libovolnou vlastnost nebo pole, které je opatřeno poznámkami [JsonExtensionData] implementovanými IDictionary<string, JsonNode>IDictionary<string, JsonElement>IDictionary<string, object>, nebo .JsonNode

Potlačení upozornění

Pokud je to možné, doporučujeme použít jedno z alternativních řešení. Pokud ale kód nemůžete změnit, můžete upozornění potlačit direktivou #pragma<NoWarn> nebo nastavením projektu. Pokud se diagnostika generátoru SYSLIB1XXX zdroje nezobrazuje jako chyba, můžete potlačit upozornění v kódu nebo v souboru projektu.

Potlačení upozornění v kódu:

// Disable the warning.
#pragma warning disable SYSLIB1006

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

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

Potlačení upozornění v souboru projektu:

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