Newtonsoft.Json反序列化復雜類型,其中包含接口類型時出錯,錯誤信息:Type is an interface or abstract class and cannot be instantiated。
解決方案:序列化和反序列化時添加JsonSerializerSettings,屬性TypeNameHandling設置為TypeNameHandling.All。作用:就是設置Json.NET能夠序列化接口或繼承類的關鍵,將TypeNameHandling設置為All后,Json.NET會在序列化后的json文本中附加一個屬性說明json到底是從什么類序列化過來的,也可以設置TypeNameHandling為Auto,表示讓Json.NET自動判斷是否需要在序列化后的json中添加類型屬性,如果序列化的對象類型和聲明類型不一樣的話Json.NET就會在json中添加類型屬性,反之就不添加
2017-10-31