System.Text.Json IAsyncEnumerable 序列化

System.Text.Json 現支援 IAsyncEnumerable<T> 執行個體的序列化和還原序列化。

先前的行為

在先前的版本中,System.Text.Json 會將 IAsyncEnumerable<T> 執行個體序列化為空的 JSON 物件 ({})。 還原序列化會因 JsonException 而失敗。

新的行為

非同步序列化方法現會列舉物件圖中的任何 IAsyncEnumerable<T> 執行個體,然後將其序列化為 JSON 陣列。 同步序列化方法不支援 IAsyncEnumerable<T> 序列化,並會擲回 NotSupportedException

導入的版本

.NET 6

中斷性變更的類型

此變更可能會影響來源相容性。 若您將目標重定為 .NET 6,則不會收到任何編譯時期錯誤,但您可能會遭遇執行階段序列化行為有所差異的情況。

變更原因

採用這項變更,是為了新增 ASP.NET Core MVC 中串流 IAsyncEnumerable<T> 回應的支援。

檢查您的序列化模型是否包含會實作 IAsyncEnumerable<T> 的類型,並判斷是否需要發出 JSON 輸出中的列舉。 您可以透過下列任一種方式停用 IAsyncEnumerable<T> 序列化:

受影響的 API

另請參閱