.net binary formatter deserialize an object whose definition has changed a lot

后端 未结 1 2013
醉酒成梦
醉酒成梦 2021-01-20 13:38

I am trying to deserialize a file which is serialized using an older version.

In the new version, We have done the following things

  1. change namespace
相关标签:
1条回答
  • 2021-01-20 14:35

    I hate to say it, but my first pointer here would be "don't do that" - BinaryFormatter is very brittle - and while you can often bang your head on the keyboard for 6 hours to get past each successive pain point, it really isn't worth it. There are many many reasons I always say "don't use BinaryFormatter" - you've sadly found 4 of them. Frankly, my recommendation would be:

    • put back the original class, and use it just as a DTO to deserialize the old data
    • start moving to a model where you have a separate DTO model and entity model - and map between them so that your serialization is entirely independent of your application logic
    • investigate different serializers; just about any alternative serializer would be preferable to BinaryFormatter (except perhaps NetDataContractSerializer, which goes and repeats all the same mistakes; DataContractSerializer is ok-ish, though)

    Sorry that isn't more positive...

    0 讨论(0)
提交回复
热议问题