簡體   English   中英

反序列化抽象class實現.Net Core C#

[英]Deserialization abstract class implementation .Net Core C#

簡短說明: Angular 和 .NetCore 中的項目,我嘗試在后端更新抽象類列表。 通過創建一個 put 請求,我更新了包含我要更新的列表的容器 model。 前端用JSON.stringify();

當我的 put 請求到達我的端點時,它會立即開始反序列化。 我得到了異常:System.NotSupportedException:不支持沒有無參數構造函數的引用類型的反序列化。 鍵入“平鋪”。

這個異常並不讓我感到驚訝,因為抽象 class 無法實例化。 所以我嘗試使用自定義的 JsonConverter,它定義了何時轉換為 class。 但是這個轉換器永遠不會被調用。 我在 ReadJson 方法中放置了一個斷點,但是在到達斷點之前拋出了異常。

自定義 JsonConverter

摘要 model

抽象 class 的實現

放置端點

更新:

因此,在繼續幾個小時后,我發現我的項目使用 System.Text.Json.Serialization 來序列化 object。 我創建的 CostumConverter 是 Newtonsoft。 這就是為什么它可能不被調用的原因。 有沒有辦法指定我的項目使用哪個? 我有一個 startup.cs 文件,我認為像這樣的東西可能是 go。

您可以使用泛型類型參數,允許您在編譯時為方法指定任意類型 T,而無需在方法或 class 聲明中指定具體類型。

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/generic-type-parameters

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM