SYSLIB1036:System.Text.Json
源生成器遇到无效的 [JsonExtensionData]
注释
System.Text.Json
源生成器遇到注释为 [JsonExtensionData]
的属性或字段,但其数据类型未实现 IDictionary<string, JsonElement>
、IDictionary<string, object>
、IDictionary<string, JsonNode>
或 JsonNode
。
解决方法
确保具有 [JsonExtensionData]
注释的任意属性或字段的数据类型实现 IDictionary<string, JsonElement>
、IDictionary<string, object>
、IDictionary<string, JsonNode>
或 JsonNode
。
禁止显示警告
建议尽量使用解决方法之一。 但是,如果无法更改代码,可以通过 #pragma
指令或 <NoWarn>
项目设置来禁止显示警告。 如果 SYSLIB1XXX
源生成器诊断未显示为错误,则可以在代码或项目文件中禁止警告。
若要禁止显示代码中的警告,请执行以下操作:
// Disable the warning.
#pragma warning disable SYSLIB1006
// Code that generates compiler diagnostic.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB1006
若要禁止显示项目文件中的警告,请执行以下操作:
<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>