我一直在使用protobuf.net一段時間,它非常出色。我可以有一個從基類繼承的類,我可以通過在基類中使用ProtoInclude語句來序列化派生類。如果我的基類原本只說兩個ProtoInclude報表時,該對象被序列化,說繼承protobuf.net,添加一個較低的基類仍然向後兼容?
[ProtoInclude(100, typeof(Vol_SurfaceObject))]
[ProtoInclude(200, typeof(CurveObject))]
internal abstract class MarketDataObject
我仍然可以deserialise,在代碼相同的對象已經發展到有更多的推導:
[ProtoInclude(100, typeof(Vol_SurfaceObject))]
[ProtoInclude(200, typeof(CurveObject))]
[ProtoInclude(300, typeof(StaticDataObject))]
internal abstract class MarketDataObject
到目前爲止這麼好(其實非常好,謝謝Marc)。然而,現在如果我想讓一個基類甚至低於我目前的基類(在這種情況下,MarketDataObject),現在該怎麼辦?這樣,我將不得不
[ProtoInclude(100, typeof(Vol_SurfaceObject))]
[ProtoInclude(200, typeof(CurveObject))]
[ProtoInclude(300, typeof(StaticDataObject))]
internal abstract class MarketDataObject : LowerStillBaseClass
{ blah }
[ProtoInclude(10, typeof(MarketDataObject))]
internal abstract class LowerStillBaseClass
{ blah }
雖然課程作業的代碼,我是否會仍然能夠deserialise這是序列化對象時只有2 ProtoInclude語句到MarketDataObject類的這種新形式的初始對象?
謝謝你非常詳細的答案和它一定帶你的時間。你說的很完美。 – screig