Share via


SYSLIB0049:JsonSerializerOptions.AddContext 已淘汰

從 .NET 8 開始,JsonSerializerOptions.AddContext<TContext>() 方法已淘汰。 在程式碼中呼叫它會在編譯時間產生 SYSLIB0049

JsonSerializerOptions.AddContext<TContext>() 方法是在 .NET 6 中引進,作為將 JsonSerializerOptions 執行個體與指定 JsonSerializerContext 型別產生關聯的方法。 此方法在 .NET 7 中基本上已取代,並引進合約自訂TypeInfoResolver 屬性。

因應措施

請改用下列其中一個屬性:

  • TypeInfoResolver - 這個屬性可讓您一次新增一或多個解析程式。
  • TypeInfoResolverChain - 這個屬性可讓您在多個呼叫位置前面加上或附加解析程式。 其也可讓您對鏈結進行自我檢查,或從中移除元件。

如需詳細資訊,請參閱合併來源產生器

隱藏警告

若您必須使用已淘汰的 API,您可以在程式碼或專案檔中隱藏警告。

若要只隱藏單一違規,請將前置處理器指示詞新增至原始程式碼檔案,以停用並重新啟用警告。

// Disable the warning.
#pragma warning disable SYSLIB0049

// Code that uses obsolete API.
// ...

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

若要隱藏專案中的所有 SYSLIB0049 警告,請將 <NoWarn> 屬性新增至專案檔。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0049</NoWarn>
  </PropertyGroup>
</Project>

如需詳細資訊,請參閱隱藏警告