2014-01-12 64 views
0

如果有抽象類型TransportsystemActionDTO,我現在序列化對象,並得到下面的JSON:的Json網絡異常時反序列化類型不匹配基本類型

{ 
    "$id": "1", 
    "$type": "MCC.MFCV2.Services.TransportService2Interfaces.Actions.GenerateGlobalTaskActionDTO, MCC.MFCV2.Services.TransportService2Interfaces", 
    "Destination": "BA41", 
    "Source": "BA11", 
    "Description": "BA11->BA41", 
    "UseCurrentResource": false, 
    "ResourceType": null, 
    "Priority": 0, 
    "TypeOfTask": 1, 
    "NextTransportsystemAction": { 
    "$id": "2", 
    "$type": "MCC.MFCV2.Services.TransportService2Interfaces.Actions.TriggerGenerateLocalTaskActionDTO, MCC.MFCV2.Services.TransportService2Interfaces", 
    "Trigger": true, 
    "ReTrigger": true, 
    "NextTransportsystemAction": null, 
    "ConfiguratorPosition": { 
     "X": 110.0, 
     "Y": 235.0, 
     "Width": 187.42666666666668, 
     "Height": 41.0, 
     "Z": 0, 
     "Layer": 0 
    } 
    }, 
    "ConfiguratorPosition": { 
    "X": 105.0, 
    "Y": 125.0, 
    "Width": 192.23666666666682, 
    "Height": 62.000000000000014, 
    "Z": 0, 
    "Layer": 0 
    } 
} 

現在的問題是,當我TransportsystemActionDTO desrialize爲基類型,我得到以下例外:

無法創建MCC.MFCV2.Services.TransportService2Interfaces.Actions.TransportsystemActionDTO類型的實例。 Type是一個接口或抽象類,不能實例化。

這是確定的,但我不知道的基本類型是什麼,可以是不同類型,但類型存儲在$類型字段,所以Deserialisation應該是可能的...

+0

爲什麼TransportsystemActionDTO是抽象的?使其成爲具體的課程。 –

回答

1

發現我的錯誤。我添加了TypeNameHandling = Newtonsoft.Json.TypeNameHandling.Auto來序列化,但不是反序列化。現在它工作了!