1 回答

TA貢獻1859條經(jīng)驗 獲得超6個贊
是System.Type
抽象的。假設(shè)您使用例如 a 設(shè)置該屬性,typeof(System.Int32)
您將得到一個具體的實現(xiàn),很可能是一個System.RuntimeType
。(不)幸運的是,該類型不是公開的,因此 Datacontract 序列化程序根本無法獲取它。它失敗并顯示:
SerializationException:不需要輸入數(shù)據(jù)協(xié)定名稱為“RuntimeType: http:?//schemas.datacontract.org/2004/07/System ”的“System.RuntimeType”。如果您使用 DataContractSerializer,請考慮使用 DataContractResolver,或者將任何靜態(tài)未知的類型添加到已知類型列表中 - 例如,通過使用 KnownTypeAttribute 屬性或?qū)⑺鼈兲砑拥絺鬟f給序列化器的已知類型列表中。
嘗試任何指導(dǎo)來解決您的問題是沒有用的。將 ValueType 屬性的類型替換為正常的類型(例如字符串)并提供足夠的信息以便客戶端可以根據(jù)您在 ValueType 中提供的內(nèi)容重新創(chuàng)建類型要容易得多。
- 1 回答
- 0 關(guān)注
- 124 瀏覽
添加回答
舉報