2016-02-27 103 views
0

在複雜對象上使用ToJsv(或ToJson)似乎序列化正確,但調用FromJsv不會返回具有所有屬性的原始對象。有沒有簡單的方法來調試序列化/反序列化過程來找到丟失數據的原因?ServiceStack ToJsv FromJsv缺少一些數據

var complexObject = new ComplexObject(); <-- All properties have values var serialized = complexObject.ToJsv(); <-- Appears to serialize all data var deserialized = serialized.FromJsv<ComplexObject>(); <-- Some properties missing values

+1

您需要顯示'ComplexObject'類定義+示例數據,以便任何人有機會確定問題所在。 – mythz

+0

顯示ComplexObject類定義的代碼太多。這裏真正的問題是「是否有一種簡單的方法來調試序列化/反序列化過程」 – Timothy

+0

ServiceStack.Text是無依賴關係的,但有些日誌記錄可用於'Tracer.Instance = new ConsoleTracer()'。但是不能公開寫入的屬性不是錯誤,它是你的類說不要設置這個屬性,所以它只是被忽略。 – mythz

回答

1

我找到了解決我的問題,而不是更一般的問題的解決方案「你怎麼調試串行/解串與ServiceStack?」

Resharper建議:自動屬性可以爲只能得到的。

從屬性中刪除private setters破壞了ComplexObject的反序列化。將私有setter添加到屬性允許反序列化按預期工作(這是有道理的)。

還想找一個更好的方法來調試這樣的問題。我嘗試使用JsConfig.ThrowOnDeserializationError,但我什麼都沒有。必須有更好的方法...