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>