次の方法で共有


SYSLIB1039: JsonSourceGenerator で、JsonDerivedTypeAttributeが有効になっているJsonSourceGenerationMode.Serialization注釈が検出されました

JsonDerivedTypeAttribute 注釈はソース生成ではサポートされますが、 JsonSourceGenerationMode.Serializationで注釈が付けられたコンテキストではサポートされません。 つまり、この属性はメタデータ ソース ジェネレーターで動作しますが、高速パス メソッドでは機能しません。

対処方法

属性を削除するか、シリアル化コンテキストから JsonSourceGenerationMode.Serialization 注釈を削除します。

警告を表示しない

可能な場合は、いずれかの回避策を使用することをお勧めします。 ただし、コードを変更できない場合は、 #pragma ディレクティブまたは <NoWarn> プロジェクト設定を使用して警告を抑制できます。 SYSLIB1XXXソース ジェネレーターの診断がエラーとして表示されない場合は、コードまたはプロジェクト ファイルで警告を抑制できます。

コード内の警告を抑制するには (必要に応じて診断 ID を置き換えます)。

// Disable the warning.
#pragma warning disable SYSLIB1006

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

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

プロジェクト ファイル内の警告を抑制するには (必要に応じて診断 ID を置き換えます)。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   <TargetFramework>net10.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>