Compartir a través de


SYSLIB1036: el generador de origen System.Text.Json ha encontrado una anotación [JsonExtensionData] no válida

El generador de origen System.Text.Json ha encontrado una propiedad o campo anotado con [JsonExtensionData], pero cuyo tipo de datos no implementa IDictionary<string, JsonElement>, IDictionary<string, object>, IDictionary<string, JsonNode> ni JsonNode.

Soluciones alternativas

Asegúrese de que el tipo de datos de cualquier propiedad o campo anotado con [JsonExtensionData] implementa IDictionary<string, JsonElement>, IDictionary<string, object>, IDictionary<string, JsonNode> o JsonNode.

Suprimir advertencias

Se recomienda usar una de las soluciones alternativas cuando sea posible. Pero, si no puede cambiar el código, puede suprimir la advertencia por medio de una directiva #pragma o la opción de configuración del proyecto <NoWarn>. Si el diagnóstico del generador de origen SYSLIB1XXX no se ve como un error, puede suprimir la advertencia en el código o en el archivo del proyecto.

Para suprimir las advertencias en el código:

// Disable the warning.
#pragma warning disable SYSLIB1006

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

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

Para suprimir las advertencias en un archivo de proyecto:

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